Skip to content

Commit ac15f6c

Browse files
committed
Migrates tests to use internal module directly
Instead of the `unstable_concurrentAct` exports. Now we can drop those from the public builds. I put it in the jest-react package since that's where we put our other testing utilities (like `toFlushAndYield`). Not so much so it can be consumed publicly (nobody uses that package except us), but so it works with our build tests.
1 parent eba99ad commit ac15f6c

File tree

72 files changed

+562
-547
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+562
-547
lines changed

packages/jest-react/src/JestReact.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import {REACT_ELEMENT_TYPE, REACT_FRAGMENT_TYPE} from 'shared/ReactSymbols';
1010
import invariant from 'shared/invariant';
1111
import isArray from 'shared/isArray';
1212

13+
export {act} from './internalAct';
14+
1315
function captureAssertion(fn) {
1416
// Trick to use a Jest matcher inside another Jest matcher. `fn` contains an
1517
// assertion; if it throws, we capture the error and return it, so the stack

packages/shared/internalAct.js renamed to packages/jest-react/src/internalAct.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const {ReactCurrentActQueue} = ReactSharedInternals;
2424

2525
let actingUpdatesScopeDepth = 0;
2626

27-
function act(scope: () => Thenable<mixed> | void) {
27+
export function act(scope: () => Thenable<mixed> | void) {
2828
if (Scheduler.unstable_flushAllWithoutAsserting === undefined) {
2929
throw Error(
3030
'This version of `act` requires a special mock build of Scheduler.',
@@ -128,5 +128,3 @@ function flushActWork(resolve, reject) {
128128
}
129129
});
130130
}
131-
132-
export default act;

packages/react-client/src/__tests__/ReactFlight-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ describe('ReactFlight', () => {
2626
ReactNoop = require('react-noop-renderer');
2727
ReactNoopFlightServer = require('react-noop-renderer/flight-server');
2828
ReactNoopFlightClient = require('react-noop-renderer/flight-client');
29-
act = ReactNoop.act;
29+
act = require('jest-react').act;
3030

3131
ErrorBoundary = class extends React.Component {
3232
state = {hasError: false, error: null};

packages/react-debug-tools/src/__tests__/ReactHooksInspectionIntegration-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe('ReactHooksInspectionIntegration', () => {
2222
React = require('react');
2323
ReactTestRenderer = require('react-test-renderer');
2424
Scheduler = require('scheduler');
25-
act = ReactTestRenderer.unstable_concurrentAct;
25+
act = require('jest-react').act;
2626
ReactDebugTools = require('react-debug-tools');
2727
});
2828

packages/react-devtools-shared/src/__tests__/inspectedElement-test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ describe('InspectedElement', () => {
2626
let InspectedElementContext;
2727
let InspectedElementContextController;
2828
let StoreContext;
29-
let TestUtils;
3029
let TreeContextController;
3130

3231
let TestUtilsAct;
@@ -45,10 +44,9 @@ describe('InspectedElement', () => {
4544
React = require('react');
4645
ReactDOM = require('react-dom');
4746
PropTypes = require('prop-types');
48-
TestUtils = require('react-dom/test-utils');
49-
TestUtilsAct = TestUtils.unstable_concurrentAct;
47+
TestUtilsAct = require('jest-react').act;
5048
TestRenderer = utils.requireTestRenderer();
51-
TestRendererAct = TestUtils.unstable_concurrentAct;
49+
TestRendererAct = require('jest-react').act;
5250

5351
BridgeContext = require('react-devtools-shared/src/devtools/views/context')
5452
.BridgeContext;

packages/react-devtools-shared/src/__tests__/storeComponentFilters-test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ import type Store from 'react-devtools-shared/src/devtools/store';
1313
describe('Store component filters', () => {
1414
let React;
1515
let ReactDOM;
16-
let TestUtils;
1716
let Types;
1817
let bridge: FrontendBridge;
1918
let store: Store;
2019
let utils;
20+
let internalAct;
2121

2222
const act = (callback: Function) => {
23-
TestUtils.unstable_concurrentAct(() => {
23+
internalAct(() => {
2424
callback();
2525
});
2626
jest.runAllTimers(); // Flush Bridge operations
@@ -35,9 +35,9 @@ describe('Store component filters', () => {
3535

3636
React = require('react');
3737
ReactDOM = require('react-dom');
38-
TestUtils = require('react-dom/test-utils');
3938
Types = require('react-devtools-shared/src/types');
4039
utils = require('./utils');
40+
internalAct = require('jest-react').act;
4141
});
4242

4343
it('should throw if filters are updated while profiling', () => {

packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ describe('ReactDOMFiberAsync', () => {
2828
container = document.createElement('div');
2929
React = require('react');
3030
ReactDOM = require('react-dom');
31-
act = require('react-dom/test-utils').unstable_concurrentAct;
31+
act = require('jest-react').act;
3232
Scheduler = require('scheduler');
3333

3434
document.body.appendChild(container);

packages/react-dom/src/__tests__/ReactDOMHooks-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('ReactDOMHooks', () => {
2323
React = require('react');
2424
ReactDOM = require('react-dom');
2525
Scheduler = require('scheduler');
26-
act = require('react-dom/test-utils').unstable_concurrentAct;
26+
act = require('jest-react').act;
2727

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

packages/react-dom/src/__tests__/ReactDOMNativeEventHeuristic-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ describe('ReactDOMNativeEventHeuristic-test', () => {
2424
React = require('react');
2525
ReactDOM = require('react-dom');
2626
Scheduler = require('scheduler');
27-
act = require('react-dom/test-utils').unstable_concurrentAct;
27+
act = require('jest-react').act;
2828

2929
document.body.appendChild(container);
3030
});

packages/react-dom/src/__tests__/ReactDOMNestedEvents-test.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ describe('ReactDOMNestedEvents', () => {
1313
let React;
1414
let ReactDOM;
1515
let Scheduler;
16-
let TestUtils;
1716
let act;
1817
let useState;
1918

@@ -22,8 +21,7 @@ describe('ReactDOMNestedEvents', () => {
2221
React = require('react');
2322
ReactDOM = require('react-dom');
2423
Scheduler = require('scheduler');
25-
TestUtils = require('react-dom/test-utils');
26-
act = TestUtils.unstable_concurrentAct;
24+
act = require('jest-react').act;
2725
useState = React.useState;
2826
});
2927

packages/react-dom/src/__tests__/ReactDOMRoot-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ describe('ReactDOMRoot', () => {
2525
ReactDOM = require('react-dom');
2626
ReactDOMServer = require('react-dom/server');
2727
Scheduler = require('scheduler');
28-
act = require('react-dom/test-utils').unstable_concurrentAct;
28+
act = require('jest-react').act;
2929
});
3030

3131
it('renders children', () => {

packages/react-dom/src/__tests__/ReactDOMServerIntegrationHooks-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ function initModules() {
4444
ReactDOMServer = require('react-dom/server');
4545
ReactTestUtils = require('react-dom/test-utils');
4646
Scheduler = require('scheduler');
47-
act = ReactTestUtils.unstable_concurrentAct;
47+
act = require('jest-react').act;
4848
useState = React.useState;
4949
useReducer = React.useReducer;
5050
useEffect = React.useEffect;

packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ describe('ReactDOMServerPartialHydration', () => {
8080

8181
React = require('react');
8282
ReactDOM = require('react-dom');
83-
act = require('react-dom/test-utils').unstable_concurrentAct;
83+
act = require('jest-react').act;
8484
ReactDOMServer = require('react-dom/server');
8585
Scheduler = require('scheduler');
8686
Suspense = React.Suspense;

packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydration-test.internal.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import {createEventTarget} from 'dom-event-testing-library';
1414
let React;
1515
let ReactDOM;
1616
let ReactDOMServer;
17-
let ReactTestUtils;
1817
let Scheduler;
1918
let Suspense;
2019
let act;
@@ -118,8 +117,7 @@ describe('ReactDOMServerSelectiveHydration', () => {
118117
React = require('react');
119118
ReactDOM = require('react-dom');
120119
ReactDOMServer = require('react-dom/server');
121-
ReactTestUtils = require('react-dom/test-utils');
122-
act = ReactTestUtils.unstable_concurrentAct;
120+
act = require('jest-react').act;
123121
Scheduler = require('scheduler');
124122
Suspense = React.Suspense;
125123

packages/react-dom/src/__tests__/ReactDOMServerSuspense-test.internal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function initModules() {
2525
ReactDOM = require('react-dom');
2626
ReactDOMServer = require('react-dom/server');
2727
ReactTestUtils = require('react-dom/test-utils');
28-
act = ReactTestUtils.unstable_concurrentAct;
28+
act = require('jest-react').act;
2929

3030
// Make them available to the helpers.
3131
return {

packages/react-dom/src/__tests__/ReactDOMSuspensePlaceholder-test.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ let React;
1313
let ReactDOM;
1414
let Suspense;
1515
let ReactCache;
16-
let ReactTestUtils;
1716
let Scheduler;
1817
let TextResource;
1918
let act;
@@ -26,9 +25,8 @@ describe('ReactDOMSuspensePlaceholder', () => {
2625
React = require('react');
2726
ReactDOM = require('react-dom');
2827
ReactCache = require('react-cache');
29-
ReactTestUtils = require('react-dom/test-utils');
3028
Scheduler = require('scheduler');
31-
act = ReactTestUtils.unstable_concurrentAct;
29+
act = require('jest-react').act;
3230
Suspense = React.Suspense;
3331
container = document.createElement('div');
3432
document.body.appendChild(container);

packages/react-dom/src/__tests__/ReactErrorBoundaries-test.internal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe('ReactErrorBoundaries', () => {
4545
ReactFeatureFlags.skipUnmountedBoundaries = true;
4646
ReactDOM = require('react-dom');
4747
React = require('react');
48-
act = require('react-dom/test-utils').unstable_concurrentAct;
48+
act = require('jest-react').act;
4949
Scheduler = require('scheduler');
5050

5151
BrokenConstructor = class extends React.Component {

packages/react-dom/src/__tests__/ReactUpdates-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ describe('ReactUpdates', () => {
2121
React = require('react');
2222
ReactDOM = require('react-dom');
2323
ReactTestUtils = require('react-dom/test-utils');
24-
act = ReactTestUtils.unstable_concurrentAct;
24+
act = require('jest-react').act;
2525
Scheduler = require('scheduler');
2626
});
2727

packages/react-dom/src/__tests__/ReactWrongReturnPointer-test.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
let React;
1111
let ReactNoop;
1212
let Scheduler;
13+
let act;
1314
let Suspense;
1415
let SuspenseList;
1516
let getCacheForType;
@@ -20,6 +21,7 @@ beforeEach(() => {
2021
React = require('react');
2122
ReactNoop = require('react-noop-renderer');
2223
Scheduler = require('scheduler');
24+
act = require('jest-react').act;
2325

2426
Suspense = React.Suspense;
2527
SuspenseList = React.SuspenseList;
@@ -180,12 +182,12 @@ test('warns in DEV if return pointer is inconsistent', async () => {
180182
}
181183

182184
const root = ReactNoop.createRoot();
183-
await ReactNoop.act(async () => {
185+
await act(async () => {
184186
root.render(<App text="A" />);
185187
});
186188

187189
spyOnDev(console, 'error');
188-
await ReactNoop.act(async () => {
190+
await act(async () => {
189191
root.render(<App text="B" />);
190192
});
191193
expect(console.error.calls.count()).toBe(1);
@@ -225,19 +227,19 @@ test('regression (#20932): return pointer is correct before entering deleted tre
225227
}
226228

227229
const root = ReactNoop.createRoot();
228-
await ReactNoop.act(async () => {
230+
await act(async () => {
229231
root.render(<App />);
230232
});
231233
expect(Scheduler).toHaveYielded([
232234
'Suspend! [0]',
233235
'Loading Async...',
234236
'Loading Tail...',
235237
]);
236-
await ReactNoop.act(async () => {
238+
await act(async () => {
237239
resolveText(0);
238240
});
239241
expect(Scheduler).toHaveYielded([0, 'Tail']);
240-
await ReactNoop.act(async () => {
242+
await act(async () => {
241243
setAsyncText(x => x + 1);
242244
});
243245
expect(Scheduler).toHaveYielded([

packages/react-dom/src/__tests__/utils/ReactDOMServerIntegrationTestUtils.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ const shouldIgnoreConsoleError = require('../../../../../scripts/jest/shouldIgno
1515
module.exports = function(initModules) {
1616
let ReactDOM;
1717
let ReactDOMServer;
18-
let ReactTestUtils;
18+
let act;
1919

2020
function resetModules() {
21-
({ReactDOM, ReactDOMServer, ReactTestUtils} = initModules());
21+
({ReactDOM, ReactDOMServer} = initModules());
22+
act = require('jest-react').act;
2223
}
2324

2425
function shouldUseDocument(reactElement) {
@@ -50,11 +51,11 @@ module.exports = function(initModules) {
5051
function asyncReactDOMRender(reactElement, domElement, forceHydrate) {
5152
return new Promise(resolve => {
5253
if (forceHydrate) {
53-
ReactTestUtils.unstable_concurrentAct(() => {
54+
act(() => {
5455
ReactDOM.hydrate(reactElement, domElement);
5556
});
5657
} else {
57-
ReactTestUtils.unstable_concurrentAct(() => {
58+
act(() => {
5859
ReactDOM.render(reactElement, domElement);
5960
});
6061
}

packages/react-dom/src/events/__tests__/DOMPluginEventSystem-test.internal.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ let ReactFeatureFlags;
1616
let ReactDOM;
1717
let ReactDOMServer;
1818
let Scheduler;
19-
let ReactTestUtils;
2019
let act;
2120

2221
function dispatchEvent(element, type) {
@@ -67,7 +66,7 @@ describe('DOMPluginEventSystem', () => {
6766
ReactDOM = require('react-dom');
6867
Scheduler = require('scheduler');
6968
ReactDOMServer = require('react-dom/server');
70-
act = require('react-dom/test-utils').unstable_concurrentAct;
69+
act = require('jest-react').act;
7170
container = document.createElement('div');
7271
document.body.appendChild(container);
7372
startNativeEventListenerClearDown();
@@ -1253,8 +1252,7 @@ describe('DOMPluginEventSystem', () => {
12531252
ReactDOM = require('react-dom');
12541253
Scheduler = require('scheduler');
12551254
ReactDOMServer = require('react-dom/server');
1256-
ReactTestUtils = require('react-dom/test-utils');
1257-
act = ReactTestUtils.unstable_concurrentAct;
1255+
act = require('jest-react').act;
12581256
});
12591257

12601258
// @gate www

packages/react-dom/src/events/plugins/__tests__/ChangeEventPlugin-test.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
let React;
1313
let ReactDOM;
14-
let TestUtils;
1514
let ReactFeatureFlags;
1615
let Scheduler;
16+
let act;
1717

1818
const setUntrackedChecked = Object.getOwnPropertyDescriptor(
1919
HTMLInputElement.prototype,
@@ -56,7 +56,7 @@ describe('ChangeEventPlugin', () => {
5656
};
5757
React = require('react');
5858
ReactDOM = require('react-dom');
59-
TestUtils = require('react-dom/test-utils');
59+
act = require('jest-react').act;
6060
Scheduler = require('scheduler');
6161
container = document.createElement('div');
6262
document.body.appendChild(container);
@@ -727,7 +727,6 @@ describe('ChangeEventPlugin', () => {
727727
});
728728

729729
it('mouse enter/leave should be user-blocking but not discrete', async () => {
730-
const {unstable_concurrentAct: act} = TestUtils;
731730
const {useState} = React;
732731

733732
const root = ReactDOM.createRoot(container);

packages/react-dom/src/events/plugins/__tests__/SimpleEventPlugin-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ describe('SimpleEventPlugin', function() {
237237
ReactDOM = require('react-dom');
238238
Scheduler = require('scheduler');
239239

240-
act = require('react-dom/test-utils').unstable_concurrentAct;
240+
act = require('jest-react').act;
241241
});
242242

243243
it('flushes pending interactive work before exiting event handler', async () => {

0 commit comments

Comments
 (0)