From b37a29e3ad92f91913bb210d82fddd4be79e8bb1 Mon Sep 17 00:00:00 2001 From: alangsto <46360176+alangsto@users.noreply.github.com> Date: Wed, 5 May 2021 14:09:05 -0400 Subject: [PATCH] fix: include zendesk ticket in post request for non admin (#111) --- .../ProctoredExamSettings.jsx | 2 +- .../ProctoredExamSettings.test.jsx | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/src/proctored-exam-settings/ProctoredExamSettings.jsx b/src/proctored-exam-settings/ProctoredExamSettings.jsx index 6340adf94..02126b94d 100644 --- a/src/proctored-exam-settings/ProctoredExamSettings.jsx +++ b/src/proctored-exam-settings/ProctoredExamSettings.jsx @@ -87,11 +87,11 @@ function ProctoredExamSettings({ courseId, intl }) { proctored_exam_settings: { enable_proctored_exams: enableProctoredExams, proctoring_provider: proctoringProvider, + create_zendesk_tickets: createZendeskTickets, }, }; if (isEdxStaff) { dataToPostBack.proctored_exam_settings.allow_proctoring_opt_out = allowOptingOut; - dataToPostBack.proctored_exam_settings.create_zendesk_tickets = createZendeskTickets; } if (proctoringProvider === 'proctortrack') { diff --git a/src/proctored-exam-settings/ProctoredExamSettings.test.jsx b/src/proctored-exam-settings/ProctoredExamSettings.test.jsx index 58b2ed6f1..b697690de 100644 --- a/src/proctored-exam-settings/ProctoredExamSettings.test.jsx +++ b/src/proctored-exam-settings/ProctoredExamSettings.test.jsx @@ -676,5 +676,51 @@ describe('ProctoredExamSettings', () => { ); expect(document.activeElement).toEqual(successAlert); }); + + it('Include Zendesk ticket in post request if user is not an admin', async () => { + // use non-admin user for test + initializeMockApp({ + authenticatedUser: { + userId: 4, + username: 'abc1234', + administrator: false, + roles: [], + }, + }); + axiosMock = new MockAdapter(getAuthenticatedHttpClient(), { onNoMatch: 'throwException' }); + axiosMock.onGet(StudioApiService.getProctoredExamSettingsUrl(defaultProps.courseId)).reply(200, { + proctored_exam_settings: { + enable_proctored_exams: true, + allow_proctoring_opt_out: false, + proctoring_provider: 'mockproc', + proctoring_escalation_email: 'test@example.com', + create_zendesk_tickets: true, + }, + available_proctoring_providers: ['software_secure', 'proctortrack', 'mockproc'], + }); + axiosMock.onPost( + StudioApiService.getProctoredExamSettingsUrl(defaultProps.courseId), + ).reply(200, 'success'); + + await act(async () => render(intlWrapper())); + // Make a change to the proctoring provider + const selectElement = screen.getByDisplayValue('mockproc'); + await act(async () => { + fireEvent.change(selectElement, { target: { value: 'proctortrack' } }); + }); + const submitButton = screen.getByTestId('submissionButton'); + await act(async () => { + fireEvent.click(submitButton); + }); + expect(axiosMock.history.post.length).toBe(1); + expect(JSON.parse(axiosMock.history.post[0].data)).toEqual({ + proctored_exam_settings: { + enable_proctored_exams: true, + proctoring_provider: 'proctortrack', + proctoring_escalation_email: 'test@example.com', + create_zendesk_tickets: false, + }, + }); + }); }); });