ReactFiberRefs-test.js — react Source File
Architecture documentation for ReactFiberRefs-test.js, a javascript file in the react codebase.
Entity Profile
Relationship Graph
Source Code
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @emails react-core
*/
'use strict';
let React;
let Scheduler;
let ReactNoop;
let act;
let assertLog;
describe('ReactFiberRefs', () => {
beforeEach(() => {
jest.resetModules();
React = require('react');
Scheduler = require('scheduler');
ReactNoop = require('react-noop-renderer');
act = require('internal-test-utils').act;
assertLog = require('internal-test-utils').assertLog;
});
it('ref is attached even if there are no other updates (class)', async () => {
let component;
class Component extends React.Component {
shouldComponentUpdate() {
// This component's output doesn't depend on any props or state
return false;
}
render() {
Scheduler.log('Render');
component = this;
return 'Hi';
}
}
const ref1 = React.createRef();
const ref2 = React.createRef();
const root = ReactNoop.createRoot();
// Mount with ref1 attached
await act(() => root.render(<Component ref={ref1} />));
assertLog(['Render']);
expect(root).toMatchRenderedOutput('Hi');
expect(ref1.current).toBe(component);
// ref2 has no value
expect(ref2.current).toBe(null);
// Switch to ref2, but don't update anything else.
await act(() => root.render(<Component ref={ref2} />));
// The component did not re-render because no props changed.
assertLog([]);
expect(root).toMatchRenderedOutput('Hi');
// But the refs still should have been swapped.
expect(ref1.current).toBe(null);
// ... (103 more lines)
Domain
Subdomains
Source
Frequently Asked Questions
What does ReactFiberRefs-test.js do?
ReactFiberRefs-test.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
Where is ReactFiberRefs-test.js in the architecture?
ReactFiberRefs-test.js is located at packages/react-reconciler/src/__tests__/ReactFiberRefs-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