client/src/components/__tests__/NoteInput.test.js
author ymh <ymh.work@gmail.com>
Tue, 23 May 2017 13:15:34 +0200
changeset 3 3b5d37d84cfe
child 8 6f572b6b6be3
permissions -rw-r--r--
Some code rename and reorg + basic tests

import React from 'react';
import { shallow, mount } from 'enzyme';
import NoteInput from '../NoteInput';

const setup = (propOverrides, doMount=false) => {
  const props = Object.assign({
      addNote: jest.fn()
  }, propOverrides);

  const renderFn = doMount?mount:shallow; 
  const wrapper = renderFn(<NoteInput {...props} />);

  return {
    props,
    wrapper,
  }
};

describe('Notes container Component', () => {
  test('render', () => {
    const { wrapper } = setup();
    expect(wrapper.exists()).toBe(true)
  });

  test('click button', () => {
      const { props, wrapper } = setup({}, true);
      wrapper.find('button').simulate('click');
      expect(props.addNote.mock.calls.length).toBe(1);
  });

  test('note value on clickbutton', () => {
      const { props, wrapper } = setup({}, true);
      wrapper.find('textarea').simulate('change', {target: {value: 'note text'}});
      wrapper.find('button').simulate('click');
      expect(props.addNote.mock.calls.length).toBe(1);
      expect(props.addNote.mock.calls[0]).toEqual(['note text']);
  });

});