Advertisement
Guest User

Untitled

a guest
Aug 31st, 2018
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react';
  2. import Register from '../../components/Register/Register';
  3. import { users } from '../../seed/virtualDatabases';
  4. import { shallow } from 'enzyme';
  5. import thunk from 'redux-thunk';
  6. import configureMockStore from 'redux-mock-store';
  7.  
  8. const createMockStore = configureMockStore([thunk]);
  9.  
  10. let store, history, registerUser, startFetchUsers, wrapper, event;
  11.  
  12. beforeEach(() => {
  13.   history = {
  14.     push: jest.fn()
  15.   }
  16.   registerUser = jest.fn();
  17.   startFetchUsers= jest.fn();
  18.  
  19.   store = createMockStore({users: []});
  20.  
  21.   event = {
  22.     preventDefault: () => {},
  23.     target: {
  24.       elements: {
  25.         username: {value: 'abc'},
  26.         fullname: {value: 'abc'},
  27.         email: {value: 'abc@gmail.com'},
  28.         password: {value: 'Hello123'}
  29.       }
  30.     }
  31.   }
  32.  
  33.   wrapper = shallow (
  34.     <Register
  35.       history={history}
  36.       startFetchUsers={startFetchUsers}
  37.       registerUser={registerUser}
  38.       store={store}
  39.     />
  40.   ).dive();
  41. })
  42.  
  43. describe('Register Page', () => {
  44.   test('Register page should render correcly', () => {
  45.     expect(wrapper).toMatchSnapshot();
  46.   })
  47.  
  48.   test('showTerm state should change correctly', () => {
  49.     wrapper.find('p').simulate('click');
  50.     expect(wrapper.state('showTerm')).toBe(true);
  51.     wrapper.find('p').simulate('click');
  52.     expect(wrapper.state('showTerm')).toBe(false);
  53.   })
  54.  
  55.   test('Testing on submit with invalid input', () => {
  56.     const errorList = [
  57.       "Username can not be empty.",
  58.       "Fullname can not be empty.",
  59.       "Email can not be empty.",
  60.       "Password can not be empty."
  61.     ];
  62.     let i = 0;
  63.     for (const prop in event.target.elements) {
  64.       const tmp = event.target.elements[prop].value;
  65.       event.target.elements[prop].value = ' ';
  66.       wrapper.find('form').at(0).simulate('submit', event);
  67.       event.target.elements[prop].value = tmp;
  68.       expect(wrapper.state('error')).toBe(errorList[i])
  69.       i++;
  70.     }
  71.   })
  72.  
  73.   test('Testing on submit with valid input', async (done) => {
  74.     await wrapper.find('form').at(0).simulate('submit', event);
  75.     expect(wrapper.state('error')).toBe(undefined);
  76.     expect(history.push).toHaveBeenLastCalledWith('/');
  77.     expect(registerUser).toHaveBeenCalled();
  78.     done();
  79.   })
  80. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement