У меня есть компонент с такой настройкой
const ChestWithToys = ({toyBoxId, handleTidyToys})=> {
/* do stuff with toys */
useEffect(() => () => handleTidyToys(), [toyBoxId])
}
И это в моем тесте с энзимом и действием (от react-dom/test-utils
)
it('tidies toys on unmount', () => {
let handleTidyToys = sinon.stub();
let wrapper = shallow(<ChestWithToys toyBoxId={1} handleTidyToys={handleTidyToys} />);
expect(handleTidyToys).to.have.callCount(0);
act(() => {
wrapper.unmount();
});
expect(handleTidyToys).to.have.callCount(1);
});
Компонент работает как положено. Однако в тесте handleTidyToys
никогда не вызывается. Что дает? Я не могу найти лучший пример , где происходит размонтирование, но из того, что я вижу, должно сработать мой обратный вызов очистки.
Если я заменим размонтирование на setProps
и изменим идентификатор запроса, он все равно не сработает.
Является ли фермент несовместимым или я совершил какую-то другую ошибку?
edit: я только что сбросил загрузку console.logs в useEffect и вокруг него, и он вообще не работает.