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:
alangsto
2020-07-20 09:30:13 -04:00
committed by GitHub
parent f9d297a613
commit 3fe529dc12
3 changed files with 46 additions and 2 deletions

View File

@@ -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) {

View 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);
});
});

View File

@@ -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 });