diff options
| author | Randy Ridge <randyridge@gmail.com> | 2018-09-14 20:01:25 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-09-14 20:01:25 -0400 |
| commit | 908180c77cd38011eeedcae949613da2a3391e5e (patch) | |
| tree | b59bf1aae819a04d453cde72f6e601f5561a740f /finished-application/frontend/__tests__/TakeMyMoney.test.js | |
| parent | 1f6667d233a4a2e9df977204d83a8f749c050c75 (diff) | |
| parent | b3bebda57ba187b7fa10398054b54c05d3fd3555 (diff) | |
Merge branch 'master' into randyridge/our
Diffstat (limited to 'finished-application/frontend/__tests__/TakeMyMoney.test.js')
| -rw-r--r-- | finished-application/frontend/__tests__/TakeMyMoney.test.js | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/finished-application/frontend/__tests__/TakeMyMoney.test.js b/finished-application/frontend/__tests__/TakeMyMoney.test.js index 1c41410..3d68502 100644 --- a/finished-application/frontend/__tests__/TakeMyMoney.test.js +++ b/finished-application/frontend/__tests__/TakeMyMoney.test.js @@ -1,12 +1,13 @@ import { mount } from 'enzyme'; +import wait from 'waait'; import toJSON from 'enzyme-to-json'; import NProgress from 'nprogress'; import Router from 'next/router'; -import wait from 'waait'; import { MockedProvider } from 'react-apollo/test-utils'; -import TakeMyMoney from '../components/TakeMyMoney'; -import { fakeUser, fakeCartItem } from '../lib/testUtils'; +import { ApolloConsumer } from 'react-apollo'; +import TakeMyMoney, { CREATE_ORDER_MUTATION } from '../components/TakeMyMoney'; import { CURRENT_USER_QUERY } from '../components/User'; +import { fakeUser, fakeCartItem } from '../lib/testUtils'; Router.router = { push() {} }; @@ -23,34 +24,33 @@ const mocks = [ }, }, ]; -describe('<TakeMyMoney />', () => { - it('renders', async () => { + +describe('<TakeMyMoney/>', () => { + it('renders and matches snapshot', async () => { const wrapper = mount( <MockedProvider mocks={mocks}> <TakeMyMoney /> </MockedProvider> ); - // wait for it to load await wait(); wrapper.update(); - // find the button const checkoutButton = wrapper.find('ReactStripeCheckout'); expect(toJSON(checkoutButton)).toMatchSnapshot(); }); - - it('creates an order onToken', async () => { - const createOrderSpy = jest.fn().mockResolvedValue({ data: { createOrder: { id: 'xyz789' } } }); - + it('creates an order ontoken', async () => { + const createOrderMock = jest.fn().mockResolvedValue({ + data: { createOrder: { id: 'xyz789' } }, + }); const wrapper = mount( <MockedProvider mocks={mocks}> <TakeMyMoney /> </MockedProvider> ); - const component = wrapper.find('TakeMyMoney'); - component.instance().onToken({ id: 'abc123' }, createOrderSpy); - // check it - expect(createOrderSpy).toBeCalled(); - expect(createOrderSpy).toBeCalledWith({ variables: { token: 'abc123' } }); + const component = wrapper.find('TakeMyMoney').instance(); + // manully call that onToken method + component.onToken({ id: 'abc123' }, createOrderMock); + expect(createOrderMock).toHaveBeenCalled(); + expect(createOrderMock).toHaveBeenCalledWith({ variables: { token: 'abc123' } }); }); it('turns the progress bar on', async () => { @@ -62,16 +62,16 @@ describe('<TakeMyMoney />', () => { await wait(); wrapper.update(); NProgress.start = jest.fn(); - - const createOrderSpy = jest.fn().mockResolvedValue({ data: { createOrder: { id: 'xyz789' } } }); - const component = wrapper.find('TakeMyMoney'); - component.instance().onToken({ id: 'abc123' }, createOrderSpy); - wrapper.find('button').simulate('click'); + const createOrderMock = jest.fn().mockResolvedValue({ + data: { createOrder: { id: 'xyz789' } }, + }); + const component = wrapper.find('TakeMyMoney').instance(); + // manully call that onToken method + component.onToken({ id: 'abc123' }, createOrderMock); expect(NProgress.start).toHaveBeenCalled(); }); it('routes to the order page when completed', async () => { - // Mount the wrapper const wrapper = mount( <MockedProvider mocks={mocks}> <TakeMyMoney /> @@ -79,20 +79,20 @@ describe('<TakeMyMoney />', () => { ); await wait(); wrapper.update(); - - // Spy on Router Push + const createOrderMock = jest.fn().mockResolvedValue({ + data: { createOrder: { id: 'xyz789' } }, + }); + const component = wrapper.find('TakeMyMoney').instance(); Router.router.push = jest.fn(); - const createOrderSpy = jest.fn().mockResolvedValue({ data: { createOrder: { id: 'xyz789' } } }); - - const component = wrapper.find('TakeMyMoney'); - component.instance().onToken({ id: 'abc123' }, createOrderSpy); - - // submit the form - wrapper.find('button').simulate('click'); + // manully call that onToken method + component.onToken({ id: 'abc123' }, createOrderMock); await wait(); + expect(Router.router.push).toHaveBeenCalled(); expect(Router.router.push).toHaveBeenCalledWith({ pathname: '/order', - query: { id: 'xyz789' }, + query: { + id: 'xyz789', + }, }); }); }); |
