From 132e2a305cb279980895abb07628d95192befd8a Mon Sep 17 00:00:00 2001 From: Rob Hogan Date: Sun, 16 Jun 2024 16:55:21 -0700 Subject: [PATCH] Wrap `jest/renderer` `create` abstraction in `act` for concurrent rendering (#44994) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44994 For RN monorepo tests, wrap `create` calls through our `jest/renderer` abstraction in `await act`. This is a no-op under current React but will be required under `react-test-renderer@19` with `IS_REACT_ACT_ENVIRONMENT`. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D58650940 fbshipit-source-id: 4013af89dd7c9f447b2dd493989f3a4fdf2b6508 --- .../LogBoxInspectorSourceMapStatus-test.js.snap | 5 +++++ packages/react-native/jest/renderer.js | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/react-native/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorSourceMapStatus-test.js.snap b/packages/react-native/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorSourceMapStatus-test.js.snap index df2fcc92128..bbc3ed47a0b 100644 --- a/packages/react-native/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorSourceMapStatus-test.js.snap +++ b/packages/react-native/Libraries/LogBox/UI/__tests__/__snapshots__/LogBoxInspectorSourceMapStatus-test.js.snap @@ -101,6 +101,11 @@ exports[`LogBoxInspectorSourceMapStatus should render for pending 1`] = ` "height": 14, "marginEnd": 4, "tintColor": "rgba(250, 186, 48, 1)", + "transform": Array [ + Object { + "rotate": "0deg", + }, + ], "width": 16, } } diff --git a/packages/react-native/jest/renderer.js b/packages/react-native/jest/renderer.js index a16f34ca74f..97bc909290e 100644 --- a/packages/react-native/jest/renderer.js +++ b/packages/react-native/jest/renderer.js @@ -11,11 +11,16 @@ import type {ReactTestRenderer} from 'react-test-renderer'; +import nullthrows from 'nullthrows'; import * as React from 'react'; import TestRenderer from 'react-test-renderer'; export async function create( Component: React.Element, ): Promise { - return TestRenderer.create(Component); + let component; + await TestRenderer.act(async () => { + component = TestRenderer.create(Component); + }); + return nullthrows(component); }