mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
Add stable React.act export (#28160)
Starting in version 19, users can import the `act` testing API from the `react` package instead of using a renderer specific API, like `react-dom/test-utils`.
This commit is contained in:
parent
4384a7bcd3
commit
53b12e46a1
|
|
@ -20,7 +20,7 @@ describe('unmocked scheduler', () => {
|
|||
beforeEach(() => {
|
||||
jest.resetModules();
|
||||
React = require('react');
|
||||
DOMAct = React.unstable_act;
|
||||
DOMAct = React.act;
|
||||
TestRenderer = require('react-test-renderer');
|
||||
TestAct = TestRenderer.act;
|
||||
});
|
||||
|
|
@ -61,7 +61,7 @@ describe('mocked scheduler', () => {
|
|||
require.requireActual('scheduler/unstable_mock')
|
||||
);
|
||||
React = require('react');
|
||||
DOMAct = React.unstable_act;
|
||||
DOMAct = React.act;
|
||||
TestRenderer = require('react-test-renderer');
|
||||
TestAct = TestRenderer.act;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -19,7 +19,9 @@ describe('Store component filters', () => {
|
|||
let utils;
|
||||
|
||||
const act = async (callback: Function) => {
|
||||
if (React.unstable_act != null) {
|
||||
if (React.act != null) {
|
||||
await React.act(callback);
|
||||
} else if (React.unstable_act != null) {
|
||||
await React.unstable_act(callback);
|
||||
} else {
|
||||
callback();
|
||||
|
|
|
|||
|
|
@ -21,7 +21,9 @@ export function act(
|
|||
const {act: actTestRenderer} = require('react-test-renderer');
|
||||
// Use `require('react-dom/test-utils').act` as a fallback for React 17, which can be used in integration tests for React DevTools.
|
||||
const actDOM =
|
||||
require('react').unstable_act || require('react-dom/test-utils').act;
|
||||
require('react').act ||
|
||||
require('react').unstable_act ||
|
||||
require('react-dom/test-utils').act;
|
||||
|
||||
actDOM(() => {
|
||||
actTestRenderer(() => {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ describe('ReactDOMServerHydration', () => {
|
|||
React = require('react');
|
||||
ReactDOMClient = require('react-dom/client');
|
||||
ReactDOMServer = require('react-dom/server');
|
||||
act = React.unstable_act;
|
||||
act = React.act;
|
||||
|
||||
console.error = jest.fn();
|
||||
container = document.createElement('div');
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ beforeEach(() => {
|
|||
yields = [];
|
||||
React = require('react');
|
||||
ReactDOMClient = require('react-dom/client');
|
||||
act = React.unstable_act;
|
||||
act = React.act;
|
||||
container = document.createElement('div');
|
||||
document.body.appendChild(container);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -39,7 +39,9 @@ const getFiberCurrentPropsFromNode = EventInternals[2];
|
|||
const enqueueStateRestore = EventInternals[3];
|
||||
const restoreStateIfNeeded = EventInternals[4];
|
||||
|
||||
const act = React.unstable_act;
|
||||
// TODO: Add a warning if this API is accessed with advice to switch to
|
||||
// importing directly from the React package instead.
|
||||
const act = React.act;
|
||||
|
||||
function Event(suffix) {}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ describe('act warnings', () => {
|
|||
React = require('react');
|
||||
Scheduler = require('scheduler');
|
||||
ReactNoop = require('react-noop-renderer');
|
||||
act = React.unstable_act;
|
||||
act = React.act;
|
||||
useState = React.useState;
|
||||
Suspense = React.Suspense;
|
||||
startTransition = React.startTransition;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ describe('ReactFiberHostContext', () => {
|
|||
beforeEach(() => {
|
||||
jest.resetModules();
|
||||
React = require('react');
|
||||
act = React.unstable_act;
|
||||
act = React.act;
|
||||
ReactFiberReconciler = require('react-reconciler');
|
||||
ConcurrentRoot =
|
||||
require('react-reconciler/src/ReactRootTags').ConcurrentRoot;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ describe('isomorphic act()', () => {
|
|||
ReactNoop = require('react-noop-renderer');
|
||||
DiscreteEventPriority =
|
||||
require('react-reconciler/constants').DiscreteEventPriority;
|
||||
act = React.unstable_act;
|
||||
act = React.act;
|
||||
use = React.use;
|
||||
Suspense = React.Suspense;
|
||||
startTransition = React.startTransition;
|
||||
|
|
|
|||
|
|
@ -370,7 +370,7 @@ describe('`act` bypasses Scheduler methods completely,', () => {
|
|||
}
|
||||
|
||||
const root = ReactNoop.createRoot();
|
||||
const publicAct = React.unstable_act;
|
||||
const publicAct = React.act;
|
||||
const prevIsReactActEnvironment = global.IS_REACT_ACT_ENVIRONMENT;
|
||||
try {
|
||||
global.IS_REACT_ACT_ENVIRONMENT = true;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ describe('ReactFresh', () => {
|
|||
ReactDOM = require('react-dom');
|
||||
ReactDOMClient = require('react-dom/client');
|
||||
Scheduler = require('scheduler');
|
||||
act = React.unstable_act;
|
||||
act = React.act;
|
||||
internalAct = require('internal-test-utils').act;
|
||||
|
||||
const InternalTestUtils = require('internal-test-utils');
|
||||
|
|
@ -3792,7 +3792,7 @@ describe('ReactFresh', () => {
|
|||
React = require('react');
|
||||
ReactDOM = require('react-dom');
|
||||
Scheduler = require('scheduler');
|
||||
act = React.unstable_act;
|
||||
act = React.act;
|
||||
internalAct = require('internal-test-utils').act;
|
||||
|
||||
// Important! Inject into the global hook *after* ReactDOM runs:
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ describe('ReactFlightDOMForm', () => {
|
|||
ReactServerDOMClient = require('react-server-dom-webpack/client.edge');
|
||||
ReactDOMServer = require('react-dom/server.edge');
|
||||
ReactDOMClient = require('react-dom/client');
|
||||
act = React.unstable_act;
|
||||
act = React.act;
|
||||
useFormState = require('react-dom').useFormState;
|
||||
container = document.createElement('div');
|
||||
document.body.appendChild(container);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ import {getPublicInstance} from './ReactFiberConfigTestHost';
|
|||
import {ConcurrentRoot, LegacyRoot} from 'react-reconciler/src/ReactRootTags';
|
||||
import {allowConcurrentByDefault} from 'shared/ReactFeatureFlags';
|
||||
|
||||
const act = React.unstable_act;
|
||||
const act = React.act;
|
||||
|
||||
// TODO: Remove from public bundle
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
export {
|
||||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
||||
act as unstable_act,
|
||||
act,
|
||||
Children,
|
||||
Component,
|
||||
Fragment,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
export {
|
||||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
||||
act as unstable_act,
|
||||
act,
|
||||
Children,
|
||||
Component,
|
||||
Fragment,
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ export type ChildrenArray<+T> = $ReadOnlyArray<ChildrenArray<T>> | T;
|
|||
// We can't use export * from in Flow for some reason.
|
||||
export {
|
||||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
||||
act as unstable_act,
|
||||
act,
|
||||
Children,
|
||||
Component,
|
||||
Fragment,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
export {
|
||||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
||||
act as unstable_act,
|
||||
act,
|
||||
Children,
|
||||
Component,
|
||||
Fragment,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
export {
|
||||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
||||
act as unstable_act,
|
||||
act,
|
||||
Children,
|
||||
Component,
|
||||
Fragment,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user