import React from 'react' import renderer from 'react-test-renderer' import TestUtils from 'react-dom/test-utils' import ValidateEditor from '../../../components/ValueEditor/ValidateEditor' describe('ValidateEditor Component', () => { let validateFn = jest.fn( content => content.length == 3), doneFn = jest.fn() it('should render correctly', () => { let validateEditor = renderer.create( ), tree = validateEditor.toJSON() expect(tree).toMatchSnapshot() }) let validateEditor = TestUtils.renderIntoDocument( ) it('should handle componentWillReceiveProps', () => { let mockProps = { isValid: s => s.length == 3, content: "bar" } validateEditor.componentWillReceiveProps(mockProps) expect(validateEditor.state.valid).toBeTruthy() validateEditor.componentWillReceiveProps({...mockProps, content: "bars"}) expect(validateEditor.state.valid).toBeFalsy() }) it('should handle input', () => { validateEditor.onInput("foo bar") expect(validateFn).toBeCalledWith("foo bar") }) it('should handle done', () => { // invalid validateEditor.editor.reset = jest.fn() validateEditor.onDone("foo bar") expect(validateEditor.editor.reset).toBeCalled() // valid validateEditor.onDone("bar") expect(doneFn).toBeCalledWith("bar") }) })