diff --git a/client/src/components/Draftail/EditorFallback/EditorFallback.js b/client/src/components/Draftail/EditorFallback/EditorFallback.js
index d1a123741..08e7e30ee 100644
--- a/client/src/components/Draftail/EditorFallback/EditorFallback.js
+++ b/client/src/components/Draftail/EditorFallback/EditorFallback.js
@@ -138,6 +138,7 @@ class EditorFallback extends PureComponent {
EditorFallback.propTypes = {
children: PropTypes.node.isRequired,
+ field: PropTypes.object.isRequired,
};
export default EditorFallback;
diff --git a/client/src/components/Draftail/EditorFallback/EditorFallback.test.js b/client/src/components/Draftail/EditorFallback/EditorFallback.test.js
new file mode 100644
index 000000000..329c945bf
--- /dev/null
+++ b/client/src/components/Draftail/EditorFallback/EditorFallback.test.js
@@ -0,0 +1,145 @@
+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();
+ });
+ });
+});
diff --git a/client/src/components/Draftail/EditorFallback/__snapshots__/EditorFallback.test.js.snap b/client/src/components/Draftail/EditorFallback/__snapshots__/EditorFallback.test.js.snap
new file mode 100644
index 000000000..f4c31a98e
--- /dev/null
+++ b/client/src/components/Draftail/EditorFallback/__snapshots__/EditorFallback.test.js.snap
@@ -0,0 +1,129 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`EditorFallback #error #showContent 1`] = `
+
+
+
+
+
+
+
+
+ The editor just crashed. Content has been reset to the last saved version.
+
+
+
+
+`;
+
+exports[`EditorFallback #error #showError 1`] = `
+
+
+
+
+
+
+
+ The editor just crashed. Content has been reset to the last saved version.
+
+
+
+
+ test stack
+test
+
+
+
+`;
+
+exports[`EditorFallback #error reload 1`] = `"test"`;
+
+exports[`EditorFallback #error works 1`] = `
+
+
+
+
+
+
+
+ The editor just crashed. Content has been reset to the last saved version.
+
+
+
+`;
+
+exports[`EditorFallback works 1`] = `"test"`;