diff options
Diffstat (limited to 'finished-application/frontend/__tests__/RemoveFromCart.test.js')
| -rw-r--r-- | finished-application/frontend/__tests__/RemoveFromCart.test.js | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/finished-application/frontend/__tests__/RemoveFromCart.test.js b/finished-application/frontend/__tests__/RemoveFromCart.test.js index 34229a5..faacc91 100644 --- a/finished-application/frontend/__tests__/RemoveFromCart.test.js +++ b/finished-application/frontend/__tests__/RemoveFromCart.test.js @@ -1,12 +1,13 @@ -import React from 'react'; import { mount } from 'enzyme'; +import wait from 'waait'; import toJSON from 'enzyme-to-json'; -import { ApolloConsumer } from 'react-apollo'; import { MockedProvider } from 'react-apollo/test-utils'; -import wait from 'waait'; +import { ApolloConsumer } from 'react-apollo'; import RemoveFromCart, { REMOVE_FROM_CART_MUTATION } from '../components/RemoveFromCart'; -import { fakeCartItem, fakeUser } from '../lib/testUtils'; import { CURRENT_USER_QUERY } from '../components/User'; +import { fakeUser, fakeCartItem } from '../lib/testUtils'; + +global.alert = console.log; const mocks = [ { @@ -16,17 +17,12 @@ const mocks = [ me: { ...fakeUser(), cart: [fakeCartItem({ id: 'abc123' })], - orders: [], }, }, }, }, { - request: { - // This is the mutation - query: REMOVE_FROM_CART_MUTATION, - variables: { id: 'abc123' }, - }, + request: { query: REMOVE_FROM_CART_MUTATION, variables: { id: 'abc123' } }, result: { data: { removeFromCart: { @@ -39,19 +35,17 @@ const mocks = [ ]; describe('<RemoveFromCart/>', () => { - it('renders and matches snapshot', () => { + it('renders and matches snapshot', async () => { const wrapper = mount( - <MockedProvider mocks={mocks}> + <MockedProvider> <RemoveFromCart id="abc123" /> </MockedProvider> ); expect(toJSON(wrapper.find('button'))).toMatchSnapshot(); }); - it('removes an item from the cart', async () => { - // 1. Grab a copy of the current client + it('removes the item from cart', async () => { let apolloClient; - // const wrapper = mountWithApollo(<RemoveFromCart id="abc123" />); const wrapper = mount( <MockedProvider mocks={mocks}> <ApolloConsumer> @@ -62,17 +56,12 @@ describe('<RemoveFromCart/>', () => { </ApolloConsumer> </MockedProvider> ); - // Fire Off that first mock - await apolloClient.query({ query: CURRENT_USER_QUERY }); - // check if it worked - const { me } = apolloClient.readQuery({ query: CURRENT_USER_QUERY }); - expect(me.cart).toHaveLength(1); - expect(me.cart[0].item.price).toBe(5000); - - // simulate a click, which will fire REMOVE_FROM_CART mock + const res = await apolloClient.query({ query: CURRENT_USER_QUERY }); + expect(res.data.me.cart).toHaveLength(1); + expect(res.data.me.cart[0].item.price).toBe(5000); wrapper.find('button').simulate('click'); await wait(); - const { me: me2 } = apolloClient.readQuery({ query: CURRENT_USER_QUERY }); - expect(me2.cart).toHaveLength(0); + const res2 = await apolloClient.query({ query: CURRENT_USER_QUERY }); + expect(res2.data.me.cart).toHaveLength(0); }); }); |
