fix[devtools/e2e]: add fallback for act in integration tests (#27842)
https://github.com/facebook/react/pull/27805 broke integration tests for React DevTools with React 17, these changes introduce a fallback for such case when `act` is not available in `react`, but available in `react-dom`, like before.
Ruslan Lesiutin committed
Dec 17, 2023 at 13:17 UTC
3e00e58a6ac7f73a3660f31d3129fb06d344167e
1 file changed
+6
-2
packages/react-devtools-shared/src/__tests__/utils.js
+6
-2
@@ -19,7 +19,9 @@ export function act(
19
recursivelyFlush: boolean = true,
20
): void {
21
const {act: actTestRenderer} = require('react-test-renderer');
22
- const actDOM = require('react').unstable_act;
22
+ // Use `require('react-dom/test-utils').act` as a fallback for React 17, which can be used in integration tests for React DevTools.
23
+ const actDOM =
24
+ require('react').unstable_act || require('react-dom/test-utils').act;
25
26
actDOM(() => {
27
actTestRenderer(() => {
@@ -44,7 +46,9 @@ export async function actAsync(
46
recursivelyFlush: boolean = true,
47
): Promise<void> {
48
const {act: actTestRenderer} = require('react-test-renderer');
47
- const actDOM = require('react').unstable_act;
49
+ // Use `require('react-dom/test-utils').act` as a fallback for React 17, which can be used in integration tests for React DevTools.
50
+ const actDOM =
51
+ require('react').unstable_act || require('react-dom/test-utils').act;
52
53
await actDOM(async () => {
54
await actTestRenderer(async () => {