blob: bd8a93416c4905db086ec4e74ab6689dd1e467ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import React from 'react';
import { shallow } from 'enzyme';
import toJSON from 'enzyme-to-json';
import { ResetRequest } from '../components/ResetRequest';
const wait = amount => new Promise(resolve => setTimeout(resolve, amount));
describe('<ResetRequest/>', () => {
it('renders and matches snapshot', () => {
const wrapper = shallow(<ResetRequest requestReset={() => {}} />);
expect(toJSON(wrapper)).toMatchSnapshot();
});
it('handles the reset request', async () => {
const resetSpy = jest.fn(() => Promise.resolve({}));
const wrapper = shallow(<ResetRequest requestReset={resetSpy} />);
const input = wrapper.find('input[name="email"]');
input.simulate('change', { target: { name: 'email', value: 'wesbos@gmail.com' } });
wrapper.simulate('submit', { preventDefault() {} });
expect(resetSpy).toHaveBeenCalledWith({ variables: { email: 'wesbos@gmail.com' } });
});
it('displays errors', async () => {
const resetSpy = jest.fn(() => Promise.resolve({ errors: [{ message: 'Error!!!' }] }));
const wrapper = shallow(<ResetRequest requestReset={resetSpy} />);
const input = wrapper.find('input[name="email"]');
input.simulate('change', { target: { name: 'email', value: 'wesbos@gmail.com' } });
wrapper.simulate('submit', { preventDefault() {} });
await wait(0);
wrapper.update();
expect(toJSON(wrapper)).toMatchSnapshot();
});
});
|