import React from 'react'; import { shallow, mount } from 'enzyme'; import AnswerSourceForm from '../AnswerSourceForm'; import {ANSWER_TYPE} from '../../../config/constants' it('renders without crashing', () => { shallow({}} onSave={()=>{}} onSourceChange={()=>{}} />); }); it('calls onClose when cancel is pressed', () => { const onClose = jest.fn(); const wrapper = mount({}} 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({}} 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({}} 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({}} 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({}} 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)); });