From e018f5482e550a49535f4df990d3bfc09128f5d8 Mon Sep 17 00:00:00 2001 From: Wes Bos Date: Thu, 19 Apr 2018 13:29:25 -0400 Subject: Add to cart tests --- frontend/__tests__/AddToCart.test.js | 35 ++++++++++++---------- .../__tests__/__snapshots__/AddToCart.test.js.snap | 4 ++- 2 files changed, 22 insertions(+), 17 deletions(-) (limited to 'frontend/__tests__') diff --git a/frontend/__tests__/AddToCart.test.js b/frontend/__tests__/AddToCart.test.js index f049152..92ad0ad 100644 --- a/frontend/__tests__/AddToCart.test.js +++ b/frontend/__tests__/AddToCart.test.js @@ -1,28 +1,31 @@ import React from 'react'; import { shallow, mount } from 'enzyme'; import toJSON from 'enzyme-to-json'; -import { AddToCart } from '../components/AddToCart'; - -const currentUser = { - me: {}, - refetch() {}, -}; +import AddToCart from '../components/AddToCart'; +import mountOptions from './mockMang'; describe('', () => { it('renders and matches snapshot', () => { - const wrapper = shallow( - {}} currentUser={currentUser} /> - ); - expect(toJSON(wrapper)).toMatchSnapshot(); + const wrapper = mount(, mountOptions); + expect(toJSON(wrapper.find('button'))).toMatchSnapshot(); }); it('adds an item to the cart', () => { - const addToCart = jest.fn(() => Promise.resolve()); - const wrapper = shallow( - - ); + const wrapper = mount(, mountOptions); + const mutation = wrapper.find('Mutation').instance(); + mutation.client.mutate = jest.fn().mockResolvedValue(null); wrapper.simulate('click'); - expect(addToCart).toHaveBeenCalled(); - expect(addToCart).toHaveBeenCalledWith({ variables: { id: 'abc123' } }); + // check that it was called + expect(mutation.client.mutate).toHaveBeenCalled(); + // check that it was called with the correct ID + expect(mutation.client.mutate).toHaveBeenCalledWithVariables({ id: 'abc123' }); + }); + + it('changes to adding when clicked', () => { + const wrapper = mount(, mountOptions); + const button = wrapper.find('button'); + expect(button.text()).toContain('Add To Cart'); + button.simulate('click'); + expect(button.text()).toContain('Adding To Cart'); }); }); diff --git a/frontend/__tests__/__snapshots__/AddToCart.test.js.snap b/frontend/__tests__/__snapshots__/AddToCart.test.js.snap index 999161c..e3f8229 100644 --- a/frontend/__tests__/__snapshots__/AddToCart.test.js.snap +++ b/frontend/__tests__/__snapshots__/AddToCart.test.js.snap @@ -2,8 +2,10 @@ exports[` renders and matches snapshot 1`] = ` `; -- cgit v1.3