From c9a2b488c83dcaae0a00d2177d3bfe1f185c28bf Mon Sep 17 00:00:00 2001 From: Wes Bos Date: Mon, 7 May 2018 16:54:27 -0400 Subject: TEST ESTSE TS ETSETST --- frontend/__tests__/Signup.test.js | 91 ++++++++++++++++++++++++++++----------- 1 file changed, 65 insertions(+), 26 deletions(-) (limited to 'frontend/__tests__/Signup.test.js') diff --git a/frontend/__tests__/Signup.test.js b/frontend/__tests__/Signup.test.js index fbeb513..b6994a6 100644 --- a/frontend/__tests__/Signup.test.js +++ b/frontend/__tests__/Signup.test.js @@ -3,7 +3,9 @@ import { mount } from 'enzyme'; import toJSON from 'enzyme-to-json'; import wait from 'waait'; import Signup from '../components/Signup'; -import mountOptions from '../lib/testUtils'; +import { MockedProvider } from 'react-apollo/test-utils'; +import { LocalStorageMock, fakeItem, fakeUser, fakeCartItem } from '../lib/testUtils'; +import { SIGNUP_MUTATION, CURRENT_USER_QUERY } from '../queries/queries'; function type(wrapper, name, value) { wrapper.find(`input[name="${name}"]`).simulate('change', { @@ -13,42 +15,79 @@ function type(wrapper, name, value) { }, }); } +const me = fakeUser(); +const mocks = [ + { + request: { + query: SIGNUP_MUTATION, + variables: { + email: me.email, + name: me.name, + password: 'wes', + }, + }, + result: { + data: { + signup: { + __typename: 'AuthPayload', + token: 'tok123', + user: { + __typename: 'User', + id: 'abc123', + email: me.email, + name: me.name, + }, + }, + }, + }, + }, + { + request: { query: CURRENT_USER_QUERY }, + result: { + data: { + me: { + __typename: 'User', + ...me, + cart: [], + }, + }, + }, + }, +]; describe('', () => { beforeAll(() => { // mock localStorage - global.localStorage = { - setItem: jest.fn(), - }; + global.localStorage = new LocalStorageMock(); }); it('renders and matches snapshot', () => { - const wrapper = mount(, mountOptions); + const wrapper = mount( + + + + ); expect(toJSON(wrapper.find('form'))).toMatchSnapshot(); }); it('calls mutation with correct data', async () => { - const wrapper = mount(, mountOptions); - const mutation = wrapper.find('Mutation').instance(); - mutation.client.mutate = jest.fn().mockResolvedValue({ - data: { signup: { token: 'omg123' } }, - }); - - const expected = { - name: 'Randy', - email: 'Randy@randymail.net', - password: 'pupsrock', - }; - - type(wrapper, 'name', expected.name); - type(wrapper, 'email', expected.email); - type(wrapper, 'password', expected.password); - - wrapper.simulate('submit'); - - expect(mutation.client.mutate).toHaveBeenCalled(); - expect(mutation.client.mutate).toHaveBeenCalledWithVariables(expected); + const wrapper = mount( + + + + ); + + await wait(); + wrapper.update(); + + type(wrapper, 'name', me.name); + type(wrapper, 'email', me.email); + type(wrapper, 'password', 'wes'); + + wrapper.update(); + wrapper.find('form').simulate('submit'); + await wait(); - expect(localStorage.setItem).toHaveBeenCalledWith('token', 'omg123'); + expect(localStorage.getItem('token')).toBe('tok123'); }); }); -- cgit v1.3