From 54dd0e29830f04c9055863fb0449ee4fc2ab0689 Mon Sep 17 00:00:00 2001 From: Wes Bos Date: Tue, 17 Apr 2018 16:51:09 -0400 Subject: these tests are on fireee but the bad kind --- frontend/__tests__/ResetRequest.test.js | 46 +++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 20 deletions(-) (limited to 'frontend/__tests__/ResetRequest.test.js') diff --git a/frontend/__tests__/ResetRequest.test.js b/frontend/__tests__/ResetRequest.test.js index bd8a934..6d8d99f 100644 --- a/frontend/__tests__/ResetRequest.test.js +++ b/frontend/__tests__/ResetRequest.test.js @@ -1,33 +1,39 @@ import React from 'react'; -import { shallow } from 'enzyme'; +import { mount } from 'enzyme'; import toJSON from 'enzyme-to-json'; -import { ResetRequest } from '../components/ResetRequest'; - -const wait = amount => new Promise(resolve => setTimeout(resolve, amount)); +import { ApolloProvider } from 'react-apollo'; +import ResetRequest from '../components/ResetRequest'; +import mountOptions from './mockMang'; describe('', () => { - it('renders and matches snapshot', () => { - const wrapper = shallow( {}} />); - expect(toJSON(wrapper)).toMatchSnapshot(); + it('renders and matches snapshot', async () => { + const wrapper = mount(, mountOptions); + const Form = wrapper.find("Form[data-test='ResetRequest']"); + expect(toJSON(Form)).toMatchSnapshot(); }); - it('handles the reset request', async () => { - const resetSpy = jest.fn(() => Promise.resolve({})); - const wrapper = shallow(); + it('calls the mutation', async () => { + const wrapper = mount(, mountOptions); + const mutation = wrapper.find('Mutation').instance(); 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' } }); + // Create a spy function on mutate + mutation.client.mutate = jest.fn(); + mutation.forceUpdate(); + wrapper.find('Form').simulate('submit'); + expect(mutation.client.mutate.mock.calls[0][0].variables).toEqual({ + email: 'wesbos@gmail.com', + }); + expect(toJSON(wrapper)).toMatchSnapshot(); }); - it('displays errors', async () => { - const resetSpy = jest.fn(() => Promise.resolve({ errors: [{ message: 'Error!!!' }] })); - const wrapper = shallow(); - const input = wrapper.find('input[name="email"]'); - input.simulate('change', { target: { name: 'email', value: 'wesbos@gmail.com' } }); - wrapper.simulate('submit', { preventDefault() {} }); - await wait(0); + it('renders errors', () => { + const wrapper = mount(, mountOptions); + const mutation = wrapper.find('Mutation').instance(); + mutation.setState({ error: { message: 'Shit!' } }); wrapper.update(); - expect(toJSON(wrapper)).toMatchSnapshot(); + const error = wrapper.find('DisplayError'); + expect(error).toHaveLength(1); + expect(toJSON(error)).toMatchSnapshot(); }); }); -- cgit v1.3