71 lines
2.6 KiB
JavaScript
71 lines
2.6 KiB
JavaScript
import React from 'react';
|
|
import { shallow, mount } from 'enzyme';
|
|
import AnswerSourceForm from '../AnswerSourceForm';
|
|
import {ANSWER_TYPE} from '../../../config/constants'
|
|
|
|
it('renders without crashing', () => {
|
|
shallow(<AnswerSourceForm onClose={()=>{}} onSave={()=>{}} onSourceChange={()=>{}} />);
|
|
});
|
|
|
|
it('calls onClose when cancel is pressed', () => {
|
|
const onClose = jest.fn();
|
|
const wrapper = mount(<AnswerSourceForm onClose={onClose} onSave={()=>{}} onSourceChange={()=>{}} />);
|
|
const cancelButton = wrapper.find('button').at(0);
|
|
expect(cancelButton.text()).toEqual('Cancel');
|
|
cancelButton.simulate('click');
|
|
expect(onClose).toBeCalled();
|
|
});
|
|
|
|
it('calls onSave when save is pressed', () => {
|
|
const onSave = jest.fn();
|
|
const wrapper = mount(<AnswerSourceForm onClose={()=>{}} onSave={onSave} onSourceChange={()=>{}} />);
|
|
const saveButton = wrapper.find('button').at(1);
|
|
expect(saveButton.text()).toEqual('Save');
|
|
saveButton.simulate('click');
|
|
expect(onSave).toBeCalled();
|
|
});
|
|
|
|
it('sets PREDEFINED value when Predefined answer is selected', () => {
|
|
let selectedValue = null;
|
|
|
|
const wrapper = mount(<AnswerSourceForm
|
|
onClose={()=>{}}
|
|
onSave={()=>{}}
|
|
onSourceChange={(value)=>{selectedValue=value}} />);
|
|
|
|
const optionControl = wrapper.find('SelectionControlGroup');
|
|
expect(optionControl.exists()).toEqual(true);
|
|
optionControl.simulate('change',{target:{value:String(ANSWER_TYPE.PREDEFINED)}});
|
|
expect(selectedValue).toBe(String(ANSWER_TYPE.PREDEFINED));
|
|
|
|
});
|
|
|
|
it('sets EXTERNAL_SOURCE_WP_TITLES value when WordPress titles is selected', () => {
|
|
let selectedValue = null;
|
|
|
|
const wrapper = mount(<AnswerSourceForm
|
|
onClose={()=>{}}
|
|
onSave={()=>{}}
|
|
onSourceChange={(value)=>{selectedValue=value}} />);
|
|
|
|
const optionControl = wrapper.find('SelectionControlGroup');
|
|
expect(optionControl.exists()).toEqual(true);
|
|
optionControl.simulate('change',{target:{value:String(ANSWER_TYPE.EXTERNAL_SOURCE_WP_TITLES)}});
|
|
expect(selectedValue).toBe(String(ANSWER_TYPE.EXTERNAL_SOURCE_WP_TITLES));
|
|
|
|
});
|
|
|
|
it('sets EXTERNAL_SOURCE_WP_NEWS value when WordPress latest news is selected', () => {
|
|
let selectedValue = null;
|
|
|
|
const wrapper = mount(<AnswerSourceForm
|
|
onClose={()=>{}}
|
|
onSave={()=>{}}
|
|
onSourceChange={(value)=>{selectedValue=value}} />);
|
|
|
|
const optionControl = wrapper.find('SelectionControlGroup');
|
|
expect(optionControl.exists()).toEqual(true);
|
|
optionControl.simulate('change',{target:{value:String(ANSWER_TYPE.EXTERNAL_SOURCE_WP_NEWS)}});
|
|
expect(selectedValue).toBe(String(ANSWER_TYPE.EXTERNAL_SOURCE_WP_NEWS));
|
|
|
|
}); |