Ответ
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()требуется редко — обычно при работе с таймерами или сложными асинхронными операциями