client/src/components/__tests__/NoteInput.test.js
changeset 3 3b5d37d84cfe
child 8 6f572b6b6be3
equal deleted inserted replaced
2:b52921a63e77 3:3b5d37d84cfe
       
     1 import React from 'react';
       
     2 import { shallow, mount } from 'enzyme';
       
     3 import NoteInput from '../NoteInput';
       
     4 
       
     5 const setup = (propOverrides, doMount=false) => {
       
     6   const props = Object.assign({
       
     7       addNote: jest.fn()
       
     8   }, propOverrides);
       
     9 
       
    10   const renderFn = doMount?mount:shallow; 
       
    11   const wrapper = renderFn(<NoteInput {...props} />);
       
    12 
       
    13   return {
       
    14     props,
       
    15     wrapper,
       
    16   }
       
    17 };
       
    18 
       
    19 describe('Notes container Component', () => {
       
    20   test('render', () => {
       
    21     const { wrapper } = setup();
       
    22     expect(wrapper.exists()).toBe(true)
       
    23   });
       
    24 
       
    25   test('click button', () => {
       
    26       const { props, wrapper } = setup({}, true);
       
    27       wrapper.find('button').simulate('click');
       
    28       expect(props.addNote.mock.calls.length).toBe(1);
       
    29   });
       
    30 
       
    31   test('note value on clickbutton', () => {
       
    32       const { props, wrapper } = setup({}, true);
       
    33       wrapper.find('textarea').simulate('change', {target: {value: 'note text'}});
       
    34       wrapper.find('button').simulate('click');
       
    35       expect(props.addNote.mock.calls.length).toBe(1);
       
    36       expect(props.addNote.mock.calls[0]).toEqual(['note text']);
       
    37   });
       
    38 
       
    39 });
       
    40