summaryrefslogtreecommitdiffstats
path: root/frontend/__tests__/EditUser.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/__tests__/EditUser.test.js')
-rw-r--r--frontend/__tests__/EditUser.test.js78
1 files changed, 46 insertions, 32 deletions
diff --git a/frontend/__tests__/EditUser.test.js b/frontend/__tests__/EditUser.test.js
index 2ec0bee..68ff971 100644
--- a/frontend/__tests__/EditUser.test.js
+++ b/frontend/__tests__/EditUser.test.js
@@ -1,32 +1,55 @@
import React from 'react';
-import { shallow } from 'enzyme';
+import { mount } from 'enzyme';
import toJSON from 'enzyme-to-json';
import EditUser from '../components/EditUser';
-import { mountWithApollo } from '../lib/testUtils';
import wait from 'waait';
+import { MockedProvider } from 'react-apollo/test-utils';
+import { fakeUser } from '../lib/testUtils';
+import { CURRENT_USER_QUERY, UPDATE_USER_MUTATION } from '../queries/queries';
-const currentUser = {
- me: {
- name: 'Wes Bos',
+const mocks = [
+ {
+ request: { query: CURRENT_USER_QUERY },
+ result: {
+ data: {
+ me: fakeUser(),
+ },
+ },
},
- refetch() { },
-};
+ {
+ request: {
+ query: UPDATE_USER_MUTATION,
+ variables: {
+ name: 'Westopher',
+ },
+ },
+ result: {
+ updateUser: {
+ name: 'Westopher',
+ __typename: 'User',
+ },
+ },
+ },
+];
describe('<EditUser/>', () => {
it('renders', async () => {
- const { wrapper, component } = mountWithApollo(<EditUser />);
+ const wrapper = mount(
+ <MockedProvider mocks={mocks}>
+ <EditUser />
+ </MockedProvider>
+ );
await wait();
wrapper.update();
- expect(toJSON(wrapper.find('Form'))).toMatchSnapshot();
- });
-
- it('asks you to log in when you arent logged in', () => {
- const wrapper = shallow(<EditUser />);
- expect(toJSON(wrapper)).toMatchSnapshot();
+ expect(toJSON(wrapper.find('form'))).toMatchSnapshot();
});
it('displays changes', async () => {
- const { wrapper } = mountWithApollo(<EditUser />);
+ const wrapper = mount(
+ <MockedProvider mocks={mocks}>
+ <EditUser />
+ </MockedProvider>
+ );
await wait();
wrapper.update();
const nameInput = wrapper.find('[name="name"]');
@@ -36,26 +59,17 @@ describe('<EditUser/>', () => {
});
it('calls update user when form is submitted', async () => {
- const { wrapper } = mountWithApollo(<EditUser />);
+ const wrapper = mount(
+ <MockedProvider mocks={mocks}>
+ <EditUser />
+ </MockedProvider>
+ );
await wait();
wrapper.update();
- const mutation = wrapper.find('Mutation').instance();
- mutation.client.mutate = jest.fn();
const nameInput = wrapper.find('[name="name"]');
- nameInput.simulate('change', { target: { name: 'name', value: 'Scott' } });
- wrapper.find('form').simulate('submit', { preventDefault() { } });
- expect(mutation.client.mutate).toHaveBeenCalledWithVariables({ name: 'Scott' });
- });
-
- it('refetches the current user after an update', async () => {
- const { wrapper } = mountWithApollo(<EditUser />);
- await wait();
+ nameInput.simulate('change', { target: { name: 'name', value: 'Westopher' } });
+ wrapper.find('form').simulate('submit');
wrapper.update();
- const query = wrapper.find('Query').instance();
- const mutation = wrapper.find('Mutation').instance();
- console.log(mutation.props.mutation);
- expect('wes').toBe('finished with this one');
- // wrapper.find('form').simulate('submit', { preventDefault() {} });
- // expect(query.client.reFetchObservableQueries).toHaveBeenCalled();
+ expect(wrapper.find('[data-test="updated"]').text()).toBe('Updated!');
});
});