|
178 | 178 | end |
179 | 179 | end |
180 | 180 |
|
| 181 | + context 'when instructor has associated tags' do |
| 182 | + let(:admin) { create(:admin_user) } |
| 183 | + let(:target_instructor) { create(:instructor, course: course) } |
| 184 | + |
| 185 | + before do |
| 186 | + create(:tag, role: target_instructor) |
| 187 | + delete_as admin, :destroy, params: { course_id: course.id, id: target_instructor.id } |
| 188 | + end |
| 189 | + |
| 190 | + it 'does not delete the instructor and returns a conflict response' do |
| 191 | + expect(Instructor.exists?(target_instructor.id)).to be(true) |
| 192 | + expect(flash[:error]).to contain_message( |
| 193 | + I18n.t('flash.instructors.destroy.restricted', user_name: target_instructor.user_name, message: '') |
| 194 | + ) |
| 195 | + expect(response).to have_http_status(:conflict) |
| 196 | + end |
| 197 | + end |
| 198 | + |
| 199 | + context 'when instructor has associated split_pdf_logs' do |
| 200 | + let(:admin) { create(:admin_user) } |
| 201 | + let(:target_instructor) { create(:instructor, course: course) } |
| 202 | + |
| 203 | + before do |
| 204 | + create(:split_pdf_log, role: target_instructor) |
| 205 | + delete_as admin, :destroy, params: { course_id: course.id, id: target_instructor.id } |
| 206 | + end |
| 207 | + |
| 208 | + it 'does not delete the instructor and returns a conflict response' do |
| 209 | + expect(Instructor.exists?(target_instructor.id)).to be(true) |
| 210 | + expect(flash[:error]).to contain_message( |
| 211 | + I18n.t('flash.instructors.destroy.restricted', user_name: target_instructor.user_name, message: '') |
| 212 | + ) |
| 213 | + expect(response).to have_http_status(:conflict) |
| 214 | + end |
| 215 | + end |
| 216 | + |
181 | 217 | context 'succeeds for instructor deletion' do |
182 | 218 | let(:admin) { create(:admin_user) } |
183 | 219 | let!(:target_instructor) { create(:instructor, course: course) } |
184 | 220 | let!(:annotation) { create(:text_annotation, creator: target_instructor) } |
185 | | - let!(:tag) { create(:tag, role: target_instructor) } |
186 | 221 |
|
187 | 222 | before do |
188 | 223 | delete_as admin, :destroy, params: { course_id: course.id, id: target_instructor.id } |
|
201 | 236 | expect(annotation.creator_id).to be_nil |
202 | 237 | expect(Annotation.exists?(annotation.id)).to be(true) |
203 | 238 | end |
204 | | - |
205 | | - it 'deletes associated tags' do |
206 | | - expect(Tag.exists?(tag.id)).to be(false) |
207 | | - end |
208 | 239 | end |
209 | 240 | end |
210 | 241 |
|
|
0 commit comments