diff --git a/plugins/course-apps/proctoring/Settings.jsx b/plugins/course-apps/proctoring/Settings.jsx
index 645bc95dd0..9a4a1329dc 100644
--- a/plugins/course-apps/proctoring/Settings.jsx
+++ b/plugins/course-apps/proctoring/Settings.jsx
@@ -32,7 +32,6 @@ const ProctoringSettings = ({ onClose }) => {
proctoringProvider: false,
escalationEmail: '',
allowOptingOut: false,
- createZendeskTickets: false,
};
const [formValues, setFormValues] = useState(initialFormValues);
const [loading, setLoading] = useState(true);
@@ -78,17 +77,16 @@ const ProctoringSettings = ({ onClose }) => {
const value = target.type === 'checkbox' ? target.checked : target.value;
const { name } = target;
- if (['allowOptingOut', 'createZendeskTickets'].includes(name)) {
+ if (['allowOptingOut'].includes(name)) {
// Form.Radio expects string values, so convert back to a boolean here
setFormValues({ ...formValues, [name]: value === 'true' });
} else if (name === 'proctoringProvider') {
const newFormValues = { ...formValues, proctoringProvider: value };
-
if (value === 'proctortrack') {
- setFormValues({ ...newFormValues, createZendeskTickets: false });
+ setFormValues(newFormValues);
setShowEscalationEmail(true);
} else if (value === 'software_secure') {
- setFormValues({ ...newFormValues, createZendeskTickets: true });
+ setFormValues({ ...newFormValues });
setShowEscalationEmail(false);
} else if (isLtiProvider(value)) {
setFormValues(newFormValues);
@@ -116,7 +114,6 @@ const ProctoringSettings = ({ onClose }) => {
enable_proctored_exams: formValues.enableProctoredExams,
// lti providers are managed outside edx-platform, lti_external indicates this
proctoring_provider: isLtiProviderSelected ? 'lti_external' : selectedProvider,
- create_zendesk_tickets: formValues.createZendeskTickets,
},
};
if (isEdxStaff) {
@@ -387,29 +384,6 @@ const ProctoringSettings = ({ onClose }) => {
)}
-
- {/* CREATE ZENDESK TICKETS */}
- { isEdxStaff && formValues.enableProctoredExams && !isLtiProviderSelected && (
-
- )}
>
);
}
@@ -570,7 +544,6 @@ const ProctoringSettings = ({ onClose }) => {
proctoringProvider: selectedProvider,
enableProctoredExams: proctoredExamSettings.enable_proctored_exams,
allowOptingOut: proctoredExamSettings.allow_proctoring_opt_out,
- createZendeskTickets: proctoredExamSettings.create_zendesk_tickets,
// The backend API may return null for the proctoringEscalationEmail value, which is the default.
// In order to keep our email input component controlled, we use the empty string as the default
// and perform this conversion during GETs and POSTs.
diff --git a/plugins/course-apps/proctoring/Settings.test.jsx b/plugins/course-apps/proctoring/Settings.test.jsx
index 6cdd33aa16..30a2f25057 100644
--- a/plugins/course-apps/proctoring/Settings.test.jsx
+++ b/plugins/course-apps/proctoring/Settings.test.jsx
@@ -105,36 +105,6 @@ describe('ProctoredExamSettings', () => {
await act(async () => render(intlWrapper()));
});
- it('Updates Zendesk ticket field if proctortrack is provider', async () => {
- await waitFor(() => {
- screen.getByDisplayValue('mockproc');
- });
- const selectElement = screen.getByDisplayValue('mockproc');
- fireEvent.change(selectElement, { target: { value: 'proctortrack' } });
- const zendeskTicketInput = screen.getByTestId('createZendeskTicketsNo');
- expect(zendeskTicketInput.checked).toEqual(true);
- });
-
- it('Updates Zendesk ticket field if software_secure is provider', async () => {
- await waitFor(() => {
- screen.getByDisplayValue('mockproc');
- });
- const selectElement = screen.getByDisplayValue('mockproc');
- fireEvent.change(selectElement, { target: { value: 'software_secure' } });
- const zendeskTicketInput = screen.getByTestId('createZendeskTicketsYes');
- expect(zendeskTicketInput.checked).toEqual(true);
- });
-
- it('Does not update zendesk ticket field for any other provider', async () => {
- await waitFor(() => {
- screen.getByDisplayValue('mockproc');
- });
- const selectElement = screen.getByDisplayValue('mockproc');
- fireEvent.change(selectElement, { target: { value: 'mockproc' } });
- const zendeskTicketInput = screen.getByTestId('createZendeskTicketsYes');
- expect(zendeskTicketInput.checked).toEqual(true);
- });
-
it('Hides all other fields when enabledProctorExam is false when first loaded', async () => {
cleanup();
// Overrides the handler defined in beforeEach.
@@ -161,8 +131,6 @@ describe('ProctoredExamSettings', () => {
expect(screen.queryByText('Allow Opting Out of Proctored Exams')).toBeNull();
expect(screen.queryByDisplayValue('mockproc')).toBeNull();
expect(screen.queryByTestId('escalationEmail')).toBeNull();
- expect(screen.queryByTestId('createZendeskTicketsYes')).toBeNull();
- expect(screen.queryByTestId('createZendeskTicketsNo')).toBeNull();
});
it('Hides all other fields when enableProctoredExams toggled to false', async () => {
@@ -172,8 +140,6 @@ describe('ProctoredExamSettings', () => {
expect(screen.queryByText('Allow opting out of proctored exams')).toBeDefined();
expect(screen.queryByDisplayValue('mockproc')).toBeDefined();
expect(screen.queryByTestId('escalationEmail')).toBeDefined();
- expect(screen.queryByTestId('createZendeskTicketsYes')).toBeDefined();
- expect(screen.queryByTestId('createZendeskTicketsNo')).toBeDefined();
let enabledProctoredExamCheck = screen.getAllByLabelText('Proctored exams', { exact: false })[0];
expect(enabledProctoredExamCheck.checked).toEqual(true);
@@ -183,8 +149,6 @@ describe('ProctoredExamSettings', () => {
expect(screen.queryByText('Allow opting out of proctored exams')).toBeNull();
expect(screen.queryByDisplayValue('mockproc')).toBeNull();
expect(screen.queryByTestId('escalationEmail')).toBeNull();
- expect(screen.queryByTestId('createZendeskTicketsYes')).toBeNull();
- expect(screen.queryByTestId('createZendeskTicketsNo')).toBeNull();
});
it('Hides unsupported fields when lti provider is selected', async () => {
@@ -527,18 +491,16 @@ describe('ProctoredExamSettings', () => {
});
describe('Toggles field visibility based on user permissions', () => {
- it('Hides opting out and zendesk tickets for non edX staff', async () => {
+ it('Hides opting out for non edX staff', async () => {
setupApp(false);
await act(async () => render(intlWrapper()));
expect(screen.queryByTestId('allowOptingOutYes')).toBeNull();
- expect(screen.queryByTestId('createZendeskTicketsYes')).toBeNull();
});
- it('Shows opting out and zendesk tickets for edX staff', async () => {
+ it('Shows opting out for edX staff', async () => {
setupApp(true);
await act(async () => render(intlWrapper()));
expect(screen.queryByTestId('allowOptingOutYes')).not.toBeNull();
- expect(screen.queryByTestId('createZendeskTicketsYes')).not.toBeNull();
});
});
@@ -624,7 +586,6 @@ describe('ProctoredExamSettings', () => {
allow_proctoring_opt_out: false,
proctoring_provider: 'proctortrack',
proctoring_escalation_email: 'proctortrack@example.com',
- create_zendesk_tickets: false,
},
});
@@ -651,7 +612,6 @@ describe('ProctoredExamSettings', () => {
enable_proctored_exams: true,
allow_proctoring_opt_out: false,
proctoring_provider: 'mockproc',
- create_zendesk_tickets: true,
},
});
@@ -692,7 +652,6 @@ describe('ProctoredExamSettings', () => {
enable_proctored_exams: true,
allow_proctoring_opt_out: false,
proctoring_provider: 'lti_external',
- create_zendesk_tickets: true,
},
});
@@ -722,7 +681,6 @@ describe('ProctoredExamSettings', () => {
enable_proctored_exams: true,
allow_proctoring_opt_out: false,
proctoring_provider: 'mockproc',
- create_zendesk_tickets: true,
},
});
@@ -744,7 +702,6 @@ describe('ProctoredExamSettings', () => {
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'],
course_start_date: '2070-01-01T00:00:00Z',
@@ -762,7 +719,6 @@ describe('ProctoredExamSettings', () => {
enable_proctored_exams: true,
allow_proctoring_opt_out: false,
proctoring_provider: 'mockproc',
- create_zendesk_tickets: true,
},
});
@@ -862,27 +818,5 @@ 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
- const isAdmin = false;
- setupApp(isAdmin);
-
- await act(async () => render(intlWrapper()));
- // Make a change to the proctoring provider
- const selectElement = screen.getByDisplayValue('mockproc');
- fireEvent.change(selectElement, { target: { value: 'proctortrack' } });
- const submitButton = screen.getByTestId('submissionButton');
- 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,
- },
- });
- });
});
});
diff --git a/plugins/course-apps/proctoring/messages.js b/plugins/course-apps/proctoring/messages.js
index b5192c1fea..ed4d652fb3 100644
--- a/plugins/course-apps/proctoring/messages.js
+++ b/plugins/course-apps/proctoring/messages.js
@@ -81,11 +81,6 @@ const messages = defineMessages({
defaultMessage: 'Allow learners to opt out of proctoring on proctored exams',
description: 'Label for radio selection allowing proctored exam opt out',
},
- 'authoring.proctoring.createzendesk.label': {
- id: 'authoring.proctoring.createzendesk.label',
- defaultMessage: 'Create Zendesk tickets for suspicious attempts',
- description: 'Label for Zendesk ticket creation radio select.',
- },
'authoring.proctoring.error.single': {
id: 'authoring.proctoring.error.single',
defaultMessage: 'There is 1 error in this form.',