Помогите пожалуйста, хотя б какими шагами надо тестировать этот код? Что за чем?
componentWillReceiveProps(nextProps) {
if (nextProps.keydown.event) {
const loc = nextProps.location.pathname;
const his = nextProps.history;
const k = nextProps.keydown.event.which;
if (k === 39 && loc=== '/index') {
his.push('/index/loc1');
} else if (k === 39 && loc === '/index/loc1') {
his.push('/index/loc2');
} else if (k === 37 && loc === '/index/loc1') {
his.push('/index');
} else if (k === 37 && loc === '/index/loc2') {
his.push('/index/loc1');
}
}
}
Использую jest/enzyme.
Этот код делает следующее:
по стрелочками вправо / влево переключаются табы и меняется url.
Меня интересует что из этого я должен протестовать... переключение между всеми табами, а если их буду очень много? Буду очень благодарен за пример, какое-нибудь разъяснения как это писать.
Сейчас тест
it('test keyDown , switching tabs', () => {
const A_KEY = 39;
const props = {
his: {
hash: '',
key: '',
pathname: '/bob',
search: '',
push: jest.fn(),
},
};
const enzymeWrapper = mount(
<MemoryRouter
initialEntries={['/', '/q1', '/q2']}
initialIndex={1}
>
<Main{...props} />
</MemoryRouter>,
);
enzymeWrapper.simulate('keyDown', [{
which: A_KEY,
}]);
expect(props.his.push).toHaveBeenCalledTimes(1);
});