summaryrefslogtreecommitdiffstats
path: root/frontend/__tests__/Signup.test.js
diff options
context:
space:
mode:
authorWes Bos <wesbos@gmail.com>2018-05-07 16:54:27 -0400
committerWes Bos <wesbos@gmail.com>2018-05-07 16:54:27 -0400
commitc9a2b488c83dcaae0a00d2177d3bfe1f185c28bf (patch)
treeee3b0ad93874e434a212b43194286f366f13fbe1 /frontend/__tests__/Signup.test.js
parentdbd39fcc3861facecdd4413c90ae85cebd5db67f (diff)
TEST ESTSE TS ETSETST
Diffstat (limited to 'frontend/__tests__/Signup.test.js')
-rw-r--r--frontend/__tests__/Signup.test.js83
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');
});
});