Ответ
act()
— это утилита из React Testing Library, которая оборачивает код, вызывающий обновления состояния или эффекты в React-компонентах. Она гарантирует, что все обновления DOM и эффекты выполняются синхронно перед проверками.
Пример с тестом:
import { render, screen, act } from '@testing-library/react';
import Counter from './Counter';
test('increments counter', () => {
render(<Counter />);
act(() => {
fireEvent.click(screen.getByText('+1'));
});
expect(screen.getByText('1')).toBeInTheDocument();
});
Ключевые моменты:
act()
нужен для тестов, где происходят изменения состояния- В React Testing Library многие методы (click, type и т.д.) уже обёрнуты в
act()
- Вручную
act()
требуется редко — обычно при работе с таймерами или сложными асинхронными операциями