simulate . , .
:
https://github.com/airbnb/enzyme/blob/master/docs/api/ShallowWrapper/simulate.md
Player PlayerList, . PlayerList PlayerList PlayerListContainer (, ). PlayerList.
PlayerListTest.jsx:
import React from 'react';
import { shallow } from 'enzyme';
import { expect } from 'chai';
import sinon from 'sinon';
import PlayerList from 'components/PlayerList';
import Player from 'components/Player';
describe('PlayerList test', () => {
const playerList = [
{
id: '1',
imgUrl: 'testimageurl',
name: 'testplayer1'
},
{
id: '23423',
imgUrl: 'http://testimageurl2',
name: 'testplayer2'
},
{
id: '123124123',
imgUrl: 'http://testimageurl23',
name: 'testplayer142'
}
];
it('calls callback function with item id when player is selected', () => {
const mockSelectPlayer = sinon.spy();
const wrapper = shallow(<PlayerList playerList={playerList} selectPlayer={mockSelectPlayer} />);
const playerWrapper = wrapper.find(Player);
playerWrapper.at(0).simulate('select');
expect(mockSelectPlayer.calledOnce).to.equal(true);
expect(mockSelectPlayer.calledWith(playerList[0].id)).to.be.ok;
});
});
PlayerTest.jsx:
import React from 'react';
import { shallow } from 'enzyme';
import { expect } from 'chai';
import sinon from 'sinon';
import Player from 'components/Player.jsx';
describe('Player test', () => {
const player = {
id: '1234',
imgUrl: 'http://testimageurl',
name: 'testplayer'
};
it('calls callback function when the .player-container element clicked', () => {
const mockOnSelect = sinon.spy();
const wrapper = shallow(<Player player={player} onSelect={mockOnSelect} />);
wrapper.find('.player-container').simulate('click');
expect(mockOnSelect.calledOnce).to.equal(true);
});
});