diff options
| author | Wes Bos <wesbos@gmail.com> | 2018-05-07 16:54:27 -0400 |
|---|---|---|
| committer | Wes Bos <wesbos@gmail.com> | 2018-05-07 16:54:27 -0400 |
| commit | c9a2b488c83dcaae0a00d2177d3bfe1f185c28bf (patch) | |
| tree | ee3b0ad93874e434a212b43194286f366f13fbe1 /frontend/__tests__/Signup.test.js | |
| parent | dbd39fcc3861facecdd4413c90ae85cebd5db67f (diff) | |
TEST ESTSE TS ETSETST
Diffstat (limited to 'frontend/__tests__/Signup.test.js')
| -rw-r--r-- | frontend/__tests__/Signup.test.js | 83 |
1 files changed, 61 insertions, 22 deletions
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('<Signup/>', () => { beforeAll(() => { // mock localStorage - global.localStorage = { - setItem: jest.fn(), - }; + global.localStorage = new LocalStorageMock(); }); it('renders and matches snapshot', () => { - const wrapper = mount(<Signup />, mountOptions); + const wrapper = mount( + <MockedProvider> + <Signup /> + </MockedProvider> + ); expect(toJSON(wrapper.find('form'))).toMatchSnapshot(); }); it('calls mutation with correct data', async () => { - const wrapper = mount(<Signup />, mountOptions); - const mutation = wrapper.find('Mutation').instance(); - mutation.client.mutate = jest.fn().mockResolvedValue({ - data: { signup: { token: 'omg123' } }, - }); + const wrapper = mount( + <MockedProvider mocks={mocks}> + <Signup /> + </MockedProvider> + ); - const expected = { - name: 'Randy', - email: 'Randy@randymail.net', - password: 'pupsrock', - }; + await wait(); + wrapper.update(); - type(wrapper, 'name', expected.name); - type(wrapper, 'email', expected.email); - type(wrapper, 'password', expected.password); + type(wrapper, 'name', me.name); + type(wrapper, 'email', me.email); + type(wrapper, 'password', 'wes'); - wrapper.simulate('submit'); + wrapper.update(); + wrapper.find('form').simulate('submit'); - expect(mutation.client.mutate).toHaveBeenCalled(); - expect(mutation.client.mutate).toHaveBeenCalledWithVariables(expected); await wait(); - expect(localStorage.setItem).toHaveBeenCalledWith('token', 'omg123'); + expect(localStorage.getItem('token')).toBe('tok123'); }); }); |
