import { configure, shallow } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; import * as React from 'react'; import { Text } from 'react-native'; import renderer from 'react-test-renderer'; import MDCheckBox, { MDCheckBoxStyles } from '../index'; configure({ adapter: new Adapter() }); it('renders correctly with defaults', () => { const component = renderer .create() .toJSON(); expect(component).toMatchSnapshot(); }); it('renders correctly with disabled', () => { const mockCallBack = jest.fn(); const check = shallow( ); check.find('TouchableWithoutFeedback').simulate('press'); expect(mockCallBack.mock.calls.length).toEqual(0); }); it('renders correctly with children', () => { const mockCallBack = jest.fn(); const check = shallow( children ); check.find('TouchableWithoutFeedback').simulate('press'); expect(mockCallBack.mock.calls.length).toEqual(0); }); it('test onChange event', () => { const mockCallBack = jest.fn(); const check = shallow( ); check.find('TouchableWithoutFeedback').simulate('press'); expect(mockCallBack.mock.calls.length).toEqual(1); expect(mockCallBack.mock.calls[0][0]).toEqual(true); expect(mockCallBack.mock.calls[0][1]).toEqual('day'); check.find('TouchableWithoutFeedback').simulate('press'); expect(mockCallBack.mock.calls.length).toEqual(2); expect(mockCallBack.mock.calls[1][0]).toEqual(false); expect(mockCallBack.mock.calls[1][1]).toEqual('day'); }); it('test instance state with press', () => { const check = shallow(); const instance: any = check.instance(); check.find('TouchableWithoutFeedback').simulate('press'); expect(instance.state.checked).toBe(true); check.setProps({ checked: false }); expect(instance.state.checked).toBe(false); }); it('test instance state with change checked', () => { const check = shallow(); const instance: any = check.instance(); check.setProps({ checked: false }); expect(instance.state.checked).toBe(false); check.find('TouchableWithoutFeedback').simulate('press'); expect(instance.state.checked).toBe(true); check.find('TouchableWithoutFeedback').simulate('press'); expect(instance.state.checked).toBe(false); check.setProps({ checked: false }); expect(instance.state.checked).toBe(false); }); it('test custom style', () => { const styles = { ...MDCheckBoxStyles, wrapper: { ...MDCheckBoxStyles.wrapper, backgroundColor: 'red', }, tag: { ...MDCheckBoxStyles.wrapper, backgroundColor: 'green', }, label: { ...MDCheckBoxStyles.wrapper, backgroundColor: 'gold', }, }; const component = shallow( ); expect(component.find('View').get(0).props.style[0]).toHaveProperty( 'backgroundColor', 'red' ); expect(component.find('View').get(1).props.style).toHaveProperty( 'backgroundColor', 'green' ); expect(component.find('Text').get(0).props.style[0]).toHaveProperty( 'backgroundColor', 'gold' ); });