я следующий метод, который я хочу, чтобы тест:шутя фермент reactJS - метод выполняется независимо от возвращения
handleDayClick(e, day, {disabled}) {
if (disabled) {
// Do not update the state if the day is disabled
return;
}
this.setState({ selectedDay: day });
this.props.dateClick(day);
};
Так что я написал макет функции, передал его в качестве опоры и полагал, что я бы проверить состояние и, если функция вызвана:
it('handleDayClick() should NOT set state.selectedDay, call props.dateClick when disabled',() => {
let mockDateClick = jest.fn();
const sidebar = shallow(<Sidebar dateClick={mockDateClick}/>);
let e = 'whatever';
let day = 'tomorrow';
sidebar.instance().handleDayClick(e, day, true);
expect(sidebar.state().selectedDay).toBe(undefined);
expect(mockDateClick).toNotHaveBeenCalled();
});
Дело в том, что state(). selectedDay устанавливается на завтра. Значение перед вызовом метода равно 2017-01-12T18:18:13.216Z
, поэтому я уверен, что метод не выходит из функции рендеринга.
Что я делаю неправильно?