Home / Function/ runActTests() — react Function Reference

runActTests() — react Function Reference

Architecture documentation for the runActTests() function in ReactTestUtilsAct-test.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  036dbf00_5ff1_7e32_e85a_07d17ec42c83["runActTests()"]
  9462060a_d55f_3b24_fb6b_8993720c9d20["ReactTestUtilsAct-test.js"]
  036dbf00_5ff1_7e32_e85a_07d17ec42c83 -->|defined in| 9462060a_d55f_3b24_fb6b_8993720c9d20
  483bb056_b2bb_7c65_d726_6720452ac10d["sleep()"]
  036dbf00_5ff1_7e32_e85a_07d17ec42c83 -->|calls| 483bb056_b2bb_7c65_d726_6720452ac10d
  style 036dbf00_5ff1_7e32_e85a_07d17ec42c83 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-dom/src/__tests__/ReactTestUtilsAct-test.js lines 81–783

function runActTests(render, unmount, rerender) {
  describe('concurrent render', () => {
    beforeEach(() => {
      jest.resetModules();
      React = require('react');
      ReactDOMClient = require('react-dom/client');
      Scheduler = require('scheduler');
      act = React.act;

      const InternalTestUtils = require('internal-test-utils');
      assertLog = InternalTestUtils.assertLog;
      assertConsoleErrorDev = InternalTestUtils.assertConsoleErrorDev;

      container = document.createElement('div');
      document.body.appendChild(container);
    });

    afterEach(() => {
      unmount(container);
      document.body.removeChild(container);
    });

    describe('sync', () => {
      // @gate __DEV__
      it('can use act to flush effects', () => {
        function App() {
          React.useEffect(() => {
            Scheduler.log(100);
          });
          return null;
        }

        act(() => {
          render(<App />, container);
        });

        assertLog([100]);
      });

      // @gate __DEV__
      it('flushes effects on every call', async () => {
        function App() {
          const [ctr, setCtr] = React.useState(0);
          React.useEffect(() => {
            Scheduler.log(ctr);
          });
          return (
            <button id="button" onClick={() => setCtr(x => x + 1)}>
              {ctr}
            </button>
          );
        }

        act(() => {
          render(<App />, container);
        });
        assertLog([0]);
        const button = container.querySelector('#button');
        function click() {
          button.dispatchEvent(new MouseEvent('click', {bubbles: true}));
        }

        await act(async () => {
          click();
          click();
          click();
        });
        // it consolidates the 3 updates, then fires the effect
        assertLog([3]);
        await act(async () => click());
        assertLog([4]);
        await act(async () => click());
        assertLog([5]);
        expect(button.innerHTML).toBe('5');
      });

      // @gate __DEV__
      it("should keep flushing effects until they're done", () => {
        function App() {
          const [ctr, setCtr] = React.useState(0);
          React.useEffect(() => {

Domain

Subdomains

Calls

Frequently Asked Questions

What does runActTests() do?
runActTests() is a function in the react codebase, defined in packages/react-dom/src/__tests__/ReactTestUtilsAct-test.js.
Where is runActTests() defined?
runActTests() is defined in packages/react-dom/src/__tests__/ReactTestUtilsAct-test.js at line 81.
What does runActTests() call?
runActTests() calls 1 function(s): sleep.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free