diff --git a/src/common/ErrorHandler.js b/src/common/ErrorHandler.js index ec069b2f..fb641a79 100644 --- a/src/common/ErrorHandler.js +++ b/src/common/ErrorHandler.js @@ -14,7 +14,6 @@ const ErrorHandler = ({ location }) => class ErrorHandler extends React.Componen } static getDerivedStateFromError() { - // Update state so the next render will show the fallback UI. return { hasError: true }; } diff --git a/test/common/ErrorHandler.test.js b/test/common/ErrorHandler.test.js new file mode 100644 index 00000000..58325a65 --- /dev/null +++ b/test/common/ErrorHandler.test.js @@ -0,0 +1,36 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +import { Button } from 'reactstrap'; +import createErrorHandler from '../../src/common/ErrorHandler'; + +describe('', () => { + const window = { + location: { + reload: jest.fn(), + }, + }; + let wrapper; + + beforeEach(() => { + const ErrorHandler = createErrorHandler(window); + + wrapper = shallow(Foo} />); + }); + + afterEach(() => wrapper.unmount()); + + it('renders children when no error has occurred', () => { + expect(wrapper.text()).toEqual('Foo'); + expect(wrapper.find(Button)).toHaveLength(0); + }); + + it('renders error page when error has occurred', () => { + wrapper.setState({ hasError: true }); + + expect(wrapper.text()).toContain('Oops! This is awkward :S'); + expect(wrapper.text()).toContain( + 'It seems that something went wrong. Try refreshing the page or just click this button.' + ); + expect(wrapper.find(Button)).toHaveLength(1); + }); +});