Home / File/ ReactClassSetStateCallback-test.js — react Source File

ReactClassSetStateCallback-test.js — react Source File

Architecture documentation for ReactClassSetStateCallback-test.js, a javascript file in the react codebase.

Entity Profile

Relationship Graph

Source Code

let React;
let ReactNoop;
let Scheduler;
let act;
let assertLog;

describe('ReactClassSetStateCallback', () => {
  beforeEach(() => {
    jest.resetModules();

    React = require('react');
    ReactNoop = require('react-noop-renderer');
    Scheduler = require('scheduler');
    act = require('internal-test-utils').act;

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

  function Text({text}) {
    Scheduler.log(text);
    return text;
  }

  it('regression: setState callback (2nd arg) should only fire once, even after a rebase', async () => {
    let app;
    class App extends React.Component {
      state = {step: 0};
      render() {
        app = this;
        return <Text text={this.state.step} />;
      }
    }

    const root = ReactNoop.createRoot();
    await act(() => {
      root.render(<App />);
    });
    assertLog([0]);

    await act(() => {
      React.startTransition(() => {
        app.setState({step: 1}, () => Scheduler.log('Callback 1'));
      });
      ReactNoop.flushSync(() => {
        app.setState({step: 2}, () => Scheduler.log('Callback 2'));
      });
    });
    assertLog([2, 'Callback 2', 2, 'Callback 1']);
  });
});

Domain

Subdomains

Classes

Frequently Asked Questions

What does ReactClassSetStateCallback-test.js do?
ReactClassSetStateCallback-test.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
Where is ReactClassSetStateCallback-test.js in the architecture?
ReactClassSetStateCallback-test.js is located at packages/react-reconciler/src/__tests__/ReactClassSetStateCallback-test.js (domain: BabelCompiler, subdomain: Validation, directory: packages/react-reconciler/src/__tests__).

Analyze Your Own Codebase

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

Try Supermodel Free