import React from 'react'; import { shallow } from 'enzyme'; import EditorFallback from './EditorFallback'; describe('EditorFallback', () => { it('works', () => { expect( shallow( test ) ).toMatchSnapshot(); }); it('#componentDidCatch', () => { const field = document.createElement('input'); field.value = 'test value'; const wrapper = shallow( test ); field.value = 'new test value'; const error = new Error('test'); const info = { componentStack: 'test' }; wrapper.instance().componentDidCatch(error, info); expect(wrapper.state('error')).toBe(error); expect(wrapper.state('info')).toBe(info); expect(field.value).toBe('test value'); }); describe('#error', () => { it('works', () => { const wrapper = shallow( test ); wrapper.setState({ error: new Error('test'), }); expect(wrapper).toMatchSnapshot(); }); it('reload', () => { const wrapper = shallow( test ); wrapper .setState({ error: new Error('test'), }) .find('button') .first() .simulate('click'); expect(wrapper).toMatchSnapshot(); }); it('reload page', () => { window.location.reload = jest.fn(); const wrapper = shallow( test ); wrapper .setState({ error: new Error('test'), reloads: 3, }) .find('button') .first() .simulate('click'); expect(window.location.reload).toHaveBeenCalled(); }); it('#showError', () => { const wrapper = shallow( test ); const error = new Error('test'); error.stack = 'test stack'; wrapper .setState({ error: error, info: { componentStack: 'test' }, }) .find('button') .last() .simulate('click'); expect(wrapper).toMatchSnapshot(); }); it('#showContent', () => { const field = document.createElement('input'); field.rawContentState = { entityMap: {}, blocks: [ { key: 'a', text: 'test', }, ], }; const wrapper = shallow( test ); const error = new Error('test'); error.stack = 'test stack'; wrapper .setState({ error: error, info: { componentStack: 'test' }, }) .find('button') .slice(2, 3) .simulate('click'); expect(wrapper).toMatchSnapshot(); }); }); });