еще трезв? при тесте useEffect внутри которого обновляю стейт (естественно с правильно указанными депсами) и стандартным моком useEffect типа:
const mockUseEffect = (): void => {
useEffect.mockImplementationOnce(f => f());
};
beforeEach(() => {
useEffect = jest.spyOn(React, 'useEffect');
mockUseEffect();
mockUseEffect();
});
получаю вот такой варнинг, который роняет тест:
React``` has detected a change in the order of Hooks called by ... где ```при первом рендере useEffect не вызывался (ват?), а при втором - вызывался, что собственно и херит порядок
гит бисект подсказал, что именно обновление стейта внутри useEffect приводит к такому варнингу
P.S. рендерю через mount
Юзай react testing library, enzyme же вроде не допилил нормальную работу с хуками
И вообще похоже что ты мокаешь once, а вызываешь дважды
Обсуждают сегодня