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

import React from 'react';
import { shallow } from 'enzyme';
import NotesList from '../NotesList';
import Immutable from 'immutable';

const setup = propOverrides => {
  const props = Object.assign({
      notes: Immutable.List([{
          id: 'note1',
          text: 'test text 1'
        },
        {
          id: 'note2',
          text: 'test text 2'
        },
        {
          id: 'note3',
          text: 'test text 3'
        }])
  }, propOverrides);

  const wrapper = shallow(<NotesList {...props} />);

  return {
    props,
    wrapper,
  }
};

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

  test('test note nb', () => {
    const { wrapper } = setup();
    expect(wrapper.find('Note').getNodes()).toHaveLength(3);
  });

  test('test node key', () => {
    const { wrapper } = setup();
    wrapper.find('li').forEach((node, i) => {
      expect(node.key()).toBe('note'+(i+1));
    });
  });

  test('test node note', () => {
    const { wrapper } = setup();
    wrapper.find('Note').forEach((node, i) => {
      const {note} = node.props();
      expect(note.id).toBe('note'+(i+1));
      expect(note.text).toBe('test text '+(i+1));
    });
  });

});