Код: Выделить всё
const [isLoading, setIsLoading] = useState(false);
const handleClick = async () => {
setIsLoading(true); // Show loader when waiting for url to be fetched
await getAsyncRedirectUrl().then(url => {
setIsLoading(false); // Hide loader when url fetched
window.open(url);
})
}
return (
{isLoading && }
Click me
)
< /code>
Я пытался проверить со следующим, безрезультатно. < /p>
it('should show loader', async () => {
render();
await userEvent.click(screen.queryByTestId('button'));
await waitFor(() => {
expect(screen.queryByTestId('loader')).toBeInTheDocument();
});
});
< /code>
Результатом этого теста является сбой, в котором указывается, что загрузчик не был найден в Dom. < /p>
Я добавил искусственное ожидание по функции с установленным временем
Подробнее здесь: https://stackoverflow.com/questions/794 ... oo-quickly