summaryrefslogtreecommitdiffstats
path: root/finished-application/frontend/__tests__/TakeMyMoney.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'finished-application/frontend/__tests__/TakeMyMoney.test.js')
-rw-r--r--finished-application/frontend/__tests__/TakeMyMoney.test.js64
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',
+ },
});
});
});