Вам лучше не получать доступ к instance()
в тестах. Тесты становятся fr agile (скажем, преобразование компонента в функционал сломает все, в то время как сам компонент может быть в порядке) и менее надежным (если вы вызываете методы, которые никогда не будут вызываться в реальной жизни - например, если этот метод не вызывается другими и не связан как обработчик событий). \
Вместо этого вам нужно найти способ вызвать его с помощью .simulate()
или .props().someCabllackProp(...)
.
Предполагая, что handleConfirm
равно onClick
обрабатывается для некоторых <button name="confirm">
:
it('calls handleCompletionDateChange', () => {
const handleCompletionDateChange = jest.fn();
const wrapper1 = shallow(<DateSection
{...props}
handleCompletionDateChange={handleCompletionDateChange} \
/>);
wrapper1.find("button[name='confirm']").simulate('click');
expect(handleCompletionDateChange).toHaveBeenCalled();
})
То же самое для проверки this.setState({ showInformation: false });
части. Нам нужно выяснить, как проверить это на основе render
результатов. Что-то вроде
expect(wrapper1.find("[data-id='information-block']")).toHaveLength(0);