shlink-web-client/test/common/ErrorHandler.test.tsx

39 lines
1.2 KiB
TypeScript
Raw Normal View History

import { shallow, ShallowWrapper } from 'enzyme';
2019-03-04 22:49:18 +03:00
import { Button } from 'reactstrap';
import { Mock } from 'ts-mockery';
2019-03-04 22:49:18 +03:00
import createErrorHandler from '../../src/common/ErrorHandler';
2020-12-13 22:57:00 +03:00
import { SimpleCard } from '../../src/utils/SimpleCard';
2019-03-04 22:49:18 +03:00
describe('<ErrorHandler />', () => {
const window = Mock.of<Window>({
2019-03-04 22:49:18 +03:00
location: {
reload: jest.fn(),
},
});
const console = Mock.of<Console>({ error: jest.fn() });
let wrapper: ShallowWrapper;
2019-03-04 22:49:18 +03:00
beforeEach(() => {
const ErrorHandler = createErrorHandler(window, console);
2019-03-04 22:49:18 +03:00
wrapper = shallow(<ErrorHandler children={<span>Foo</span>} />);
});
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 });
2020-12-13 22:57:00 +03:00
expect(wrapper.find(SimpleCard).contains('Oops! This is awkward :S')).toEqual(true);
expect(wrapper.find(SimpleCard).contains(
2020-08-22 09:10:31 +03:00
'It seems that something went wrong. Try refreshing the page or just click this button.',
2020-12-13 22:57:00 +03:00
)).toEqual(true);
2019-03-04 22:49:18 +03:00
expect(wrapper.find(Button)).toHaveLength(1);
});
});