@samitouri / QOS-React-2 / commits / 3e00e58a6a

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 () => {