Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

React act() warning persists with latest versions (React 18.3.1 + RTL 16.3.0 + Vitest 2.1.0) #1413

Open
@nsxdavid

Description

Summary

The "Warning: The current testing environment is not configured to support act(...)" warning persists with the latest versions of React, React Testing Library, and Vitest as of January 2025.

Environment

  • React: 18.3.1
  • React DOM: 18.3.1
  • @testing-library/react: 16.3.0
  • Vitest: 2.1.0
  • Node: 20+
  • Environment: jsdom

Related Issues

This appears to be a continuation of:

Problem Description

Despite following all documented solutions and having the latest versions:

  • ✅ React 18.3.1+ (required version)
  • ✅ Single React version in dependency tree (verified with npm ls react)
  • ✅ Latest @testing-library/react (16.3.0)
  • ✅ Properly using act() from @testing-library/react
  • ✅ Removed manual IS_REACT_ACT_ENVIRONMENT settings (as docs suggest these are ineffective in React 18.3.1+)

The warning still appears when running tests with Vitest.

Minimal Reproduction

import { render, screen, fireEvent, waitFor, act } from '@testing-library/react';
import { describe, it, expect, vi } from 'vitest';
const TestComponent = () => {
 const [loading, setLoading] = useState(false);
 
 const handleClick = async () => {
 setLoading(true);
 await fetch('/api/test');
 setLoading(false);
 };
 
 return (
 <button onClick={handleClick}>
 {loading ? 'Loading...' : 'Click me'}
 </button>
 );
};
describe('TestComponent', () => {
 it('should handle async state updates', async () => {
 global.fetch = vi.fn().mockResolvedValue({ ok: true });
 
 render(<TestComponent />);
 
 const button = screen.getByText('Click me');
 
 await act(async () => {
 fireEvent.click(button);
 await waitFor(() => {
 expect(screen.getByText('Loading...')).toBeInTheDocument();
 });
 });
 
 // Warning appears here despite proper act() usage
 });
});

Expected Behavior

No warnings when using act() properly with supported versions.

Actual Behavior

Warning: The current testing environment is not configured to support act(...)

Question for Maintainers

  1. Is this a known limitation of the Vitest + React 18.3.1+ combination?
  2. Is there a timeline for resolving this compatibility issue?
  3. Should these warnings be considered acceptable/ignorable with the current tech stack?

Tests function correctly despite the warnings, but they create noise in CI/CD pipelines and developer workflows.

Additional Context

Multiple developers have reported this same issue across different projects with identical tech stacks, suggesting this is a systematic compatibility problem rather than individual configuration issues.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /