Skip to content

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

@nsxdavid

Description

@nsxdavid

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