Я получаю Warning: An update to App inside a test was not wrapped in act(...).
в своем наборе тестов всякий раз, когда я делаю запрос API и обновляю состояние.
Я использую библиотеку реагирования-тестирования.Я также пытался использовать утилиты тестирования ReactDOM, получил тот же результат.Еще одна вещь, которую я пробовал, заключалась в том, что контейнер обернулся в act
, но все равно получил тот же результат.
Обратите внимание: мое приложение работает и мои тесты успешно пройдены.Мне просто нужно знать, что я делаю неправильно, или это ошибка в пакете реагировать на эту ошибку.И плохо высмеивать консольную ошибку и отключать ее.
global.fetch = require('jest-fetch-mock');
it('should clear select content item', async () => {
fetch.mockResponseOnce(JSON.stringify({ results: data }));
const { container } = render(<App />);
const content = container.querySelector('.content');
await wait();
expect(content.querySelectorAll('.content--item').length).toBe(2);
});
Вот реализация хука:
const [data, setData] = useState([]);
const [error, setError] = useState('');
const fetchInitData = async () => {
try {
const res = await fetch(API_URL);
const data = await res.json();
if (data.fault) {
setError('Rate limit Exceeded');
} else {
setData(data.results);
}
} catch(e) {
setError(e.message);
}
};
useEffect(() => {
fetchInitData();
}, [isEqual(data)]);