Add Frontend Proctoring Provider Specific Defaults for Exam Settings (#7)
* added frontend behavior * added testing * fixed text to resemble original * separated unit tests
This commit is contained in:
@@ -25,11 +25,18 @@ function ExamSettings(props) {
|
||||
}
|
||||
|
||||
function onCreateZendeskTicketsChange(event) {
|
||||
setAllowOptingOut(event);
|
||||
setCreateZendeskTickets(event);
|
||||
}
|
||||
|
||||
function onProctoringProviderChange(event) {
|
||||
setProctoringProvider(event.target.value);
|
||||
const provider = event.target.value;
|
||||
setProctoringProvider(provider);
|
||||
|
||||
if (provider === 'proctortrack') {
|
||||
setCreateZendeskTickets(false);
|
||||
} else if (provider === 'software_secure') {
|
||||
setCreateZendeskTickets(true);
|
||||
}
|
||||
}
|
||||
|
||||
function onProctortrackEscalationEmailChange(event) {
|
||||
|
||||
27
src/proctored-exam-settings/ProctoredExamSettings.test.jsx
Normal file
27
src/proctored-exam-settings/ProctoredExamSettings.test.jsx
Normal file
@@ -0,0 +1,27 @@
|
||||
import React from 'react';
|
||||
import { mount } from 'enzyme';
|
||||
|
||||
import ProctoredExamSettings from './ProctoredExamSettings';
|
||||
|
||||
const defaultProps = {
|
||||
courseId: 'course-v1%3AedX%2BDemoX%2BDemo_Course',
|
||||
};
|
||||
|
||||
describe('ProctoredExamSettings', () => {
|
||||
const component = mount(<ProctoredExamSettings {...defaultProps} />);
|
||||
|
||||
it('updates zendesk ticket field if proctortrack is provider', () => {
|
||||
component.find('select#proctoringProvider').simulate('change', { target: { value: 'proctortrack' } });
|
||||
expect(component.find('input#createZendeskTickets').prop('checked')).toEqual(false);
|
||||
});
|
||||
|
||||
it('updates zendesk ticket field if software_secure is provider', () => {
|
||||
component.find('select#proctoringProvider').simulate('change', { target: { value: 'software_secure' } });
|
||||
expect(component.find('input#createZendeskTickets').prop('checked')).toEqual(true);
|
||||
});
|
||||
|
||||
it('does not update zendesk ticket field for any other provider', () => {
|
||||
component.find('select#proctoringProvider').simulate('change', { target: { value: 'mockprock' } });
|
||||
expect(component.find('input#createZendeskTickets').prop('checked')).toEqual(true);
|
||||
});
|
||||
});
|
||||
@@ -1 +1,11 @@
|
||||
import 'babel-polyfill';
|
||||
import Enzyme from 'enzyme';
|
||||
import Adapter from 'enzyme-adapter-react-16';
|
||||
import axios from 'axios';
|
||||
import { getAuthenticatedHttpClient, getAuthenticatedUser } from '@edx/frontend-platform/auth';
|
||||
|
||||
Enzyme.configure({ adapter: new Adapter() });
|
||||
|
||||
jest.mock('@edx/frontend-platform/auth');
|
||||
getAuthenticatedHttpClient.mockReturnValue(axios);
|
||||
getAuthenticatedUser.mockReturnValue({ administrator: false });
|
||||
|
||||
Reference in New Issue
Block a user