From 354432eb5b4808bdfe30f43c299f4e00971b1584 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 11 Sep 2025 19:17:29 +0200 Subject: [PATCH 01/34] fix(test): fix integration tests js app problems due to ES exports --- packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js | 2 +- packages/rn-tester/IntegrationTests/AppEventsTest.js | 2 +- .../rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js | 2 +- packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js | 2 +- packages/rn-tester/IntegrationTests/ImageSnapshotTest.js | 2 +- .../rn-tester/IntegrationTests/IntegrationTestHarnessTest.js | 2 +- packages/rn-tester/IntegrationTests/PromiseTest.js | 2 +- packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js | 2 +- packages/rn-tester/IntegrationTests/SyncMethodTest.js | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js b/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js index 276ef0e9d6b566..94ae26075b9ef9 100644 --- a/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js +++ b/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js @@ -53,4 +53,4 @@ function AccessibilityManagerTest(): React.Node { return ; } -export default AccessibilityManagerTest; +module.exports = AccessibilityManagerTest; diff --git a/packages/rn-tester/IntegrationTests/AppEventsTest.js b/packages/rn-tester/IntegrationTests/AppEventsTest.js index d96eb5da0a326a..56db42de5fbc3b 100644 --- a/packages/rn-tester/IntegrationTests/AppEventsTest.js +++ b/packages/rn-tester/IntegrationTests/AppEventsTest.js @@ -83,4 +83,4 @@ const styles = StyleSheet.create({ }, }); -export default AppEventsTest; +module.exports = AppEventsTest; diff --git a/packages/rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js b/packages/rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js index 18ed0206810480..9a1c99acc25681 100644 --- a/packages/rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js +++ b/packages/rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js @@ -80,4 +80,4 @@ function GlobalEvalWithSourceUrlTest(): React.Node { return ; } -export default GlobalEvalWithSourceUrlTest; +module.exports = GlobalEvalWithSourceUrlTest; diff --git a/packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js b/packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js index e26a4212382b40..5c3cd66dbeeadf 100644 --- a/packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js +++ b/packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js @@ -105,4 +105,4 @@ const styles = StyleSheet.create({ }, }); -export default ImageCachePolicyTest; +module.exports = ImageCachePolicyTest; diff --git a/packages/rn-tester/IntegrationTests/ImageSnapshotTest.js b/packages/rn-tester/IntegrationTests/ImageSnapshotTest.js index e25bc8f1e92b9e..b4b86d4034edd2 100644 --- a/packages/rn-tester/IntegrationTests/ImageSnapshotTest.js +++ b/packages/rn-tester/IntegrationTests/ImageSnapshotTest.js @@ -36,4 +36,4 @@ function ImageSnapshotTest(): React.Node { ); } -export default ImageSnapshotTest; +module.exports = ImageSnapshotTest; diff --git a/packages/rn-tester/IntegrationTests/IntegrationTestHarnessTest.js b/packages/rn-tester/IntegrationTests/IntegrationTestHarnessTest.js index 831b640ddfaa08..4b7e23879d74f2 100644 --- a/packages/rn-tester/IntegrationTests/IntegrationTestHarnessTest.js +++ b/packages/rn-tester/IntegrationTests/IntegrationTestHarnessTest.js @@ -62,4 +62,4 @@ const styles = StyleSheet.create({ }, }); -export default IntegrationTestHarnessTest; +module.exports = IntegrationTestHarnessTest; diff --git a/packages/rn-tester/IntegrationTests/PromiseTest.js b/packages/rn-tester/IntegrationTests/PromiseTest.js index 2efd6fe50f36a7..4d1eb27571c480 100644 --- a/packages/rn-tester/IntegrationTests/PromiseTest.js +++ b/packages/rn-tester/IntegrationTests/PromiseTest.js @@ -83,4 +83,4 @@ function PromiseTest(): React.Node { return ; } -export default PromiseTest; +module.exports = PromiseTest; diff --git a/packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js b/packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js index 72ba40aba53e72..ed1ab9d848dca7 100644 --- a/packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js +++ b/packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js @@ -54,4 +54,4 @@ const styles = StyleSheet.create({ }, }); -export default SimpleSnapshotTest; +module.exports = SimpleSnapshotTest; diff --git a/packages/rn-tester/IntegrationTests/SyncMethodTest.js b/packages/rn-tester/IntegrationTests/SyncMethodTest.js index a0f99c2dd115d0..8ba3ffa976f397 100644 --- a/packages/rn-tester/IntegrationTests/SyncMethodTest.js +++ b/packages/rn-tester/IntegrationTests/SyncMethodTest.js @@ -46,4 +46,4 @@ function SyncMethodTest(): React.Node { return ; } -export default SyncMethodTest; +module.exports = SyncMethodTest; From b8a93db63a01084c4ed9ff35c0b37a7304756156 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 11 Sep 2025 19:18:05 +0200 Subject: [PATCH 02/34] fix(test): fix unit tests compilation errors --- packages/react-native/React/Base/RCTUtils.mm | 2 +- packages/rn-tester/RCTTest/RCTTestModule.mm | 5 +++++ packages/rn-tester/RNTesterUnitTests/RCTGzipTests.m | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/react-native/React/Base/RCTUtils.mm b/packages/react-native/React/Base/RCTUtils.mm index d98cb21a539e19..317c55a0f3374f 100644 --- a/packages/react-native/React/Base/RCTUtils.mm +++ b/packages/react-native/React/Base/RCTUtils.mm @@ -706,7 +706,7 @@ BOOL RCTForceTouchAvailable(void) [data base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)0]]]; } -BOOL RCTIsGzippedData(NSData *__nullable); // exposed for unit testing purposes +extern "C" BOOL RCTIsGzippedData(NSData *__nullable); // exposed for unit testing purposes BOOL RCTIsGzippedData(NSData *__nullable data) { UInt8 *bytes = (UInt8 *)data.bytes; diff --git a/packages/rn-tester/RCTTest/RCTTestModule.mm b/packages/rn-tester/RCTTest/RCTTestModule.mm index ab797d55f893e0..86ce418432f122 100644 --- a/packages/rn-tester/RCTTest/RCTTestModule.mm +++ b/packages/rn-tester/RCTTest/RCTTestModule.mm @@ -100,6 +100,11 @@ - (dispatch_queue_t)methodQueue return _bridge.uiManager.methodQueue; } +- (void)setMethodQueue:(dispatch_queue_t)methodQueue +{ + // noop +} + RCT_EXPORT_METHOD(verifySnapshot : (RCTResponseSenderBlock)callback) { RCTAssert(_controller != nil, @"No snapshot controller configured."); diff --git a/packages/rn-tester/RNTesterUnitTests/RCTGzipTests.m b/packages/rn-tester/RNTesterUnitTests/RCTGzipTests.m index a24d9972be778d..73b37361c57c8e 100644 --- a/packages/rn-tester/RNTesterUnitTests/RCTGzipTests.m +++ b/packages/rn-tester/RNTesterUnitTests/RCTGzipTests.m @@ -11,7 +11,7 @@ #import #import -extern BOOL RCTIsGzippedData(NSData *data); +extern BOOL RCTIsGzippedData(NSData *__nullable data); @interface RCTNetworking (Private) From 390871815055ff7a4c26a9246c24fbc6f8603efa Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 11 Sep 2025 20:17:52 +0200 Subject: [PATCH 03/34] fix(test): fix AccessibilityManagerTest failing because of handling lifecycle-originating updates from DeviceEventEmitter --- .../AccessibilityManagerTest.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js b/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js index 94ae26075b9ef9..759b71dc829c47 100644 --- a/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js +++ b/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js @@ -23,6 +23,16 @@ function AccessibilityManagerTest(): React.Node { "NativeAccessibilityManager doesn't exist", ); + const subscription = DeviceEventEmitter.addListener( + 'didUpdateDimensions', + update => { + // some of the updates may come from lifecycle methods, which would carry different values than the ones we set + if (update.window.fontScale === 4.0) { + TestModule.markTestPassed(true); + } + }, + ); + NativeAccessibilityManager.setAccessibilityContentSizeMultipliers({ extraSmall: 1.0, small: 2.0, @@ -38,13 +48,6 @@ function AccessibilityManagerTest(): React.Node { accessibilityExtraExtraExtraLarge: 12.0, }); - const subscription = DeviceEventEmitter.addListener( - 'didUpdateDimensions', - update => { - TestModule.markTestPassed(update.window.fontScale === 4.0); - }, - ); - return () => { subscription.remove(); }; From 80289f812ffcc797ccf3d2a26ed43585b926ef62 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Fri, 12 Sep 2025 11:52:36 +0200 Subject: [PATCH 04/34] test: disable AccessibilityManagerTest due to T225745315 --- .../RNTesterIntegrationTests/RNTesterIntegrationTests.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/rn-tester/RNTesterIntegrationTests/RNTesterIntegrationTests.m b/packages/rn-tester/RNTesterIntegrationTests/RNTesterIntegrationTests.m index f2ae63646751dd..1551f168ecadc9 100644 --- a/packages/rn-tester/RNTesterIntegrationTests/RNTesterIntegrationTests.m +++ b/packages/rn-tester/RNTesterIntegrationTests/RNTesterIntegrationTests.m @@ -71,7 +71,13 @@ - (void)testTheTester_waitOneFrame RCT_TEST(SyncMethodTest) RCT_TEST(PromiseTest) RCT_TEST_ONLY_WITH_PACKAGER(WebSocketTest) // Requires a WebSocket test server, see scripts/objc-test.sh -RCT_TEST(AccessibilityManagerTest) + +// Disabled due to TODO(T225745315) causing AccessibilityManager to be unavailable +// and in turn RCTDeviceInfo::_exportedDimensions to fall back to 1.0 font scale, +// failing the test's assertion +// TODO: re-enable this test when TODO(T225745315) is resolved +// RCT_TEST(AccessibilityManagerTest) + RCT_TEST(GlobalEvalWithSourceUrlTest) @end From 7c8e4a992a2858e22a3a5977f8c7f5061461f65e Mon Sep 17 00:00:00 2001 From: artus9033 Date: Sat, 13 Sep 2025 14:01:35 +0200 Subject: [PATCH 05/34] docs: update unit and integration tests instructions --- packages/rn-tester/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/rn-tester/README.md b/packages/rn-tester/README.md index f93bd469d3eef8..fbe2add0c7c281 100644 --- a/packages/rn-tester/README.md +++ b/packages/rn-tester/README.md @@ -71,3 +71,9 @@ See [Running on Device](https://reactnative.dev/docs/running-on-device) for addi Building the app on both iOS and Android means building the React Native framework from source. This way you're running the latest native and JS code the way you see it in your clone of the github repo. This is different from apps created using `react-native init` which have a dependency on a specific version of React Native JS and native code, declared in a `package.json` file (and `build.gradle` for Android apps). + +## Running tests (iOS) + +RNTester provides both integration and unit tests. You can run them all by hitting `Cmd+U` in Xcode. Alternatively, it is possible to run just unit tests or integration tests using the keybinding after selecting the appropriate scheme (either `RNTesterUnitTests` or `RNTesterIntegrationTests`). + +Please note that to run integration tests, for WebSocket tests, launching the test server is required beforehand: `cd packages/rn-tester/IntegrationTests && ./launchWebSocketServer.sh`. From 3a0dcd93de2403651a4b39ed1c20ae43226b74f2 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 18 Sep 2025 22:38:19 +0200 Subject: [PATCH 06/34] test: enable RCTLoggingTests --- .../xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme b/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme index a64907d96307ef..b45cce49812b48 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme +++ b/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme @@ -53,11 +53,6 @@ BlueprintName = "RNTesterIntegrationTests" ReferencedContainer = "container:RNTesterPods.xcodeproj"> - - - - From c9d42b290a94988b85d002a09e59329cc2e062d7 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 18 Sep 2025 22:38:32 +0200 Subject: [PATCH 07/34] chore: update Podfile --- packages/rn-tester/Podfile.lock | 237 +++++++++++++++++++++----------- 1 file changed, 157 insertions(+), 80 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index d059054edf4520..7306ee48b7aa0a 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -497,6 +497,7 @@ PODS: - RCT-Folly/Fabric - RCTTypeSafety (= 1000.0.0) - React-Core/CoreModulesHeaders (= 1000.0.0) + - React-debug - React-jsi (= 1000.0.0) - React-jsinspector - React-jsinspectorcdp @@ -539,12 +540,14 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - React-domnativemodule + - React-featureflags - React-featureflagsnativemodule - React-idlecallbacksnativemodule - React-jsi - React-jsiexecutor - React-microtasksnativemodule - React-RCTFBReactNativeSpec + - React-webperformancenativemodule - SocketRocket - React-domnativemodule (1000.0.0): - boost @@ -1246,6 +1249,7 @@ PODS: - React-FabricComponents/components/rncore (= 1000.0.0) - React-FabricComponents/components/safeareaview (= 1000.0.0) - React-FabricComponents/components/scrollview (= 1000.0.0) + - React-FabricComponents/components/switch (= 1000.0.0) - React-FabricComponents/components/text (= 1000.0.0) - React-FabricComponents/components/textinput (= 1000.0.0) - React-FabricComponents/components/unimplementedview (= 1000.0.0) @@ -1425,6 +1429,33 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga + - React-FabricComponents/components/switch (1000.0.0): + - boost + - DoubleConversion + - fast_float + - fmt + - glog + - hermes-engine + - RCT-Folly + - RCT-Folly/Fabric + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-RCTFBReactNativeSpec + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - SocketRocket + - Yoga - React-FabricComponents/components/text (1000.0.0): - boost - DoubleConversion @@ -1662,6 +1693,7 @@ PODS: - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing + - React-oscompat - React-perflogger (= 1000.0.0) - React-runtimeexecutor - SocketRocket @@ -1730,12 +1762,13 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - React-cxxreact (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-cxxreact + - React-debug + - React-jsi - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - - React-perflogger (= 1000.0.0) + - React-perflogger - React-runtimeexecutor - SocketRocket - React-jsinspector (1000.0.0): @@ -1752,6 +1785,7 @@ PODS: - React-jsinspectorcdp - React-jsinspectornetwork - React-jsinspectortracing + - React-oscompat - React-perflogger (= 1000.0.0) - React-runtimeexecutor - SocketRocket @@ -1772,10 +1806,7 @@ PODS: - glog - RCT-Folly - RCT-Folly/Fabric - - React-featureflags - React-jsinspectorcdp - - React-performancetimeline - - React-timing - SocketRocket - React-jsinspectortracing (1000.0.0): - boost @@ -1797,6 +1828,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - React-cxxreact (= 1000.0.0) + - React-debug - React-jsi (= 1000.0.0) - React-jsinspector - React-jsinspectorcdp @@ -1850,6 +1882,7 @@ PODS: - React-callinvoker - React-Core - React-cxxreact + - React-debug - React-featureflags - React-jsi - React-jsinspector @@ -1858,6 +1891,19 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - SocketRocket + - React-networking (1000.0.0): + - boost + - DoubleConversion + - fast_float + - fmt + - glog + - RCT-Folly + - RCT-Folly/Fabric + - React-featureflags + - React-jsinspectornetwork + - React-performancetimeline + - React-timing + - SocketRocket - React-oscompat (1000.0.0) - React-perflogger (1000.0.0): - boost @@ -1874,6 +1920,7 @@ PODS: - fast_float - fmt - glog + - hermes-engine - RCT-Folly - RCT-Folly/Fabric - React-jsi @@ -1985,8 +2032,9 @@ PODS: - React-jsi - React-jsinspector - React-jsinspectorcdp - - React-jsinspectornetwork - React-jsinspectortracing + - React-networking + - React-performancecdpmetrics - React-performancetimeline - React-RCTAnimation - React-RCTFBReactNativeSpec @@ -2073,11 +2121,13 @@ PODS: - RCT-Folly/Fabric - RCTTypeSafety - React-Core/RCTNetworkHeaders + - React-debug - React-featureflags - React-jsi - React-jsinspectorcdp - React-jsinspectornetwork - React-NativeModulesApple + - React-networking - React-RCTFBReactNativeSpec - ReactCommon - SocketRocket @@ -2098,6 +2148,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - React-Core + - React-debug - React-jsi - React-jsinspector - React-jsinspectorcdp @@ -2274,7 +2325,8 @@ PODS: - React-timing - React-utils - SocketRocket - - React-timing (1000.0.0) + - React-timing (1000.0.0): + - React-debug - React-utils (1000.0.0): - boost - DoubleConversion @@ -2287,6 +2339,23 @@ PODS: - React-debug - React-jsi (= 1000.0.0) - SocketRocket + - React-webperformancenativemodule (1000.0.0): + - boost + - DoubleConversion + - fast_float + - fmt + - glog + - hermes-engine + - RCT-Folly + - RCT-Folly/Fabric + - React-cxxreact + - React-jsi + - React-jsiexecutor + - React-performancetimeline + - React-RCTFBReactNativeSpec + - React-runtimeexecutor + - ReactCommon/turbomodule/core + - SocketRocket - ReactAppDependencyProvider (1000.0.0): - ReactCodegen - ReactCodegen (1000.0.0): @@ -2468,6 +2537,7 @@ DEPENDENCIES: - React-Mapbuffer (from `../react-native/ReactCommon`) - React-microtasksnativemodule (from `../react-native/ReactCommon/react/nativemodule/microtasks`) - React-NativeModulesApple (from `../react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - React-networking (from `../react-native/ReactCommon/react/networking`) - React-oscompat (from `../react-native/ReactCommon/oscompat`) - React-perflogger (from `../react-native/ReactCommon/reactperflogger`) - React-performancecdpmetrics (from `../react-native/ReactCommon/react/performance/cdpmetrics`) @@ -2497,8 +2567,9 @@ DEPENDENCIES: - React-runtimescheduler (from `../react-native/ReactCommon/react/renderer/runtimescheduler`) - React-timing (from `../react-native/ReactCommon/react/timing`) - React-utils (from `../react-native/ReactCommon/react/utils`) - - ReactAppDependencyProvider (from `build/generated/ios`) - - ReactCodegen (from `build/generated/ios`) + - React-webperformancenativemodule (from `../react-native/ReactCommon/react/nativemodule/webperformance`) + - ReactAppDependencyProvider (from `build/generated/ios/ReactAppDependencyProvider`) + - ReactCodegen (from `build/generated/ios/ReactCodegen`) - ReactCommon-Samples (from `../react-native/ReactCommon/react/nativemodule/samples`) - ReactCommon/turbomodule/core (from `../react-native/ReactCommon`) - ScreenshotManager (from `NativeModuleExample`) @@ -2598,6 +2669,8 @@ EXTERNAL SOURCES: :path: "../react-native/ReactCommon/react/nativemodule/microtasks" React-NativeModulesApple: :path: "../react-native/ReactCommon/react/nativemodule/core/platform/ios" + React-networking: + :path: "../react-native/ReactCommon/react/networking" React-oscompat: :path: "../react-native/ReactCommon/oscompat" React-perflogger: @@ -2656,10 +2729,12 @@ EXTERNAL SOURCES: :path: "../react-native/ReactCommon/react/timing" React-utils: :path: "../react-native/ReactCommon/react/utils" + React-webperformancenativemodule: + :path: "../react-native/ReactCommon/react/nativemodule/webperformance" ReactAppDependencyProvider: - :path: build/generated/ios + :path: build/generated/ios/ReactAppDependencyProvider ReactCodegen: - :path: build/generated/ios + :path: build/generated/ios/ReactCodegen ReactCommon: :path: "../react-native/ReactCommon" ReactCommon-Samples: @@ -2673,83 +2748,85 @@ SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 - FBLazyVector: d3c2dd739a63c1a124e775df075dc7c517a719cb + FBLazyVector: ce5ab2aee538f72a59b0d71ad65058779abff1b4 fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 - hermes-engine: 5a9adf9081befbac6b81bc0c81522430a7eb7da1 + hermes-engine: 4c9fc96d1a4a974b152d0f6ed437e54327bbe7d7 MyNativeView: 26b517931cc8bfc7b602c410572b323348185461 NativeCxxModuleExample: 6a9788a749d522f8b6cc55a56f4760a670e4e2eb OCMock: 589f2c84dacb1f5aaf6e4cec1f292551fe748e74 RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 RCTDeprecation: 3808e36294137f9ee5668f4df2e73dc079cd1dcf - RCTRequired: a00614e2da5344c2cda3d287050b6cee00e21dc6 - RCTTypeSafety: 459a16418c6b413060d35434ba3e83f5b0bd2651 - React: 170a01a19ba2525ab7f11243e2df6b19bf268093 - React-callinvoker: f08f425e4043cd1998a158b6e39a6aed1fd1d718 - React-Core: d35c5cf69898fd026e5cd93a0454b1d42e999d3e - React-CoreModules: 3ce1d43f6cc37f43759ec543ce1c0010080f1de1 - React-cxxreact: 52ea845cf7eb1e0fb201ed36e2192de6522a1f60 - React-debug: 195df38487d3f48a7af04deddeb4a5c6d4440416 - React-defaultsnativemodule: 8afea5a4bd07addb523bf48489b8a684ea1bdff0 - React-domnativemodule: 00a3d08568b4e573dcc21ecec829ed425ab10763 - React-Fabric: e2ee903224e68c8fa24aa96e217bad36d7660f5a - React-FabricComponents: 82043c131381c8b1f6e91c559eb04cdf61decdb7 - React-FabricImage: 264c9ce5241e43e25b94c8de55ac6c3c8a046472 - React-featureflags: 595651ea13c63a9f77f06d9a1973b665b4a28b7e - React-featureflagsnativemodule: 06823479a2ee210cfa0e9c19447c2722a8d995f2 - React-graphics: 1f99b9b5515eac389f0cf9c85b03abc366d6a933 - React-hermes: f1034a4d5d8edaf78d47a4f21e9898c4bf6fe02f - React-idlecallbacksnativemodule: 4e65f183318b8a0fbabc481a4eafc0f0d62d1cbf - React-ImageManager: a6833445e17879933378b7c0ba45ee42115c14bc - React-jserrorhandler: bec134a192c50338193544404d45df24fb8a19ca - React-jsi: 4ad77650fb0ca4229569eb2532db7a87e3d12662 - React-jsiexecutor: fa5b80bdbe1ceffc33a892da20fc07b4dfa4df7a - React-jsinspector: 10b5dc4eef2a3d05b80be2114ed676496c5bf59c - React-jsinspectorcdp: 5fb266e5f23d3a2819ba848e9d4d0b6b00f95934 - React-jsinspectornetwork: 1655a81f3fe14789df41e063bd56dd130cc3562a - React-jsinspectortracing: 5b0be488e06958a572e1badfe8509929ae1cc83b - React-jsitooling: 9e563b89f94cf4baf872fe47105d60ae83f4ce4d - React-jsitracing: ce443686f52538d1033ce7db1e7d643e866262f0 - React-logger: 116c3ae5a9906671d157aa00882a5ee75a5a7ebc - React-Mapbuffer: fc937cfa41140d7724c559c3d16c50dd725361c8 - React-microtasksnativemodule: 09899c7389250279bdcc5384f0281bb069979855 - React-NativeModulesApple: d05b718ccd8b68c184e76dbc1efb63385197595b - React-oscompat: 7133e0e945cda067ae36b22502df663d73002864 - React-perflogger: ada3cdf3dfc8b7cd1fabe3c91b672e23981611ab - React-performancecdpmetrics: 89ea4585d30c7681ab1378afb3fd845cd0647860 - React-performancetimeline: e7d5849d89ee39557dcd56dfb6e7b0d49003d925 - React-RCTActionSheet: 1bf8cc8086ad1c15da3407dfb7bc9dd94dc7595d - React-RCTAnimation: 263593e66c89bf810604b1ace15dfa382a1ca2df - React-RCTAppDelegate: f66939ac7ce5da6eb839c3d84a7098e62498a791 - React-RCTBlob: 7b76230c53fe87d305eeeb250b0aae031bb6cbae - React-RCTFabric: 2fd2ef899c7219fd39fd61c39750510f88a81434 - React-RCTFBReactNativeSpec: bd9c8093cc3388fe55a8cce47e66712e326e967a - React-RCTImage: 3e28f3015bc7e8375298e01ebb2032aa05635c32 - React-RCTLinking: 06742cfad41c506091403a414370743a4ed75af3 - React-RCTNetwork: b4577eec0092c16d8996e415e4cac7a372d6d362 - React-RCTPushNotification: ea11178d499696516e0ff9ae335edbe99b06f94b - React-RCTRuntime: 925039e78fc530e0421c308ccc607f214f3c7be1 - React-RCTSettings: d3c2dd305ec81f7faf42762ec598d57f07fd43be - React-RCTTest: 2db46eda60bc2228cb67622a580e8e86b00088d9 - React-RCTText: e416825b80c530647040ef91d23ffd35ccc87981 - React-RCTVibration: 1837a27fc16eeffc9509779c3334fde54c012bcc - React-rendererconsistency: 777c894edc43dde01499189917ac54ee76ae6a6a - React-renderercss: a9cb6ba7f49a80dc4b4f7008bae1590d12f27049 - React-rendererdebug: fea8bde927403a198742b2d940a5f1cd8230c0b4 - React-RuntimeApple: 6a0c164a8855edb4987b90da2d4d8601302de72d - React-RuntimeCore: 6dec37113b759b76641bd028bfbbbec8cf923356 - React-runtimeexecutor: f6ad01d321a3b99e772509b4d6f5c25b670103fa - React-RuntimeHermes: d4f661204d3061219a63951eb4efed4dcaf3f12f - React-runtimescheduler: ae44fe8b4170a9d59f62e8b7d7b060c179db739d - React-timing: 9d49179631e5e3c759e6e82d4c613c73da80a144 - React-utils: 0944df8d553d66b27f486282c42a84a969fd2f6c - ReactAppDependencyProvider: 68f2d2cefd6c9b9f2865246be2bfe86ebd49238d - ReactCodegen: ff8d79aa6b195efceb75a7cd3cafa9f05d1cbfe0 - ReactCommon: a53973ab35d399560ace331ec9e2b26db0592cec - ReactCommon-Samples: dcc128cbf51ac38d2578791750d0a046d1b8a5e9 + RCTRequired: 8d03441b26efb265c0d2c8bab9a5c2b820b4640e + RCTTypeSafety: 14b0fde38c5de28935bf2bb941921a29ac8097e1 + React: 2878deed39c5846ae066436d33eed7c5e7569579 + React-callinvoker: c9994ff021493a2aba455a34f66824a350995aba + React-Core: b2ceeea4bad3ea334aec2b789e86461f6ddbea84 + React-CoreModules: 6a7c1866e5ae0a0ca3207a55cf765697f70ae4d8 + React-cxxreact: 61ff2b8d438c67cb1e30ca491f93bb1561b77522 + React-debug: 3aba6e6a93f732cfa9dba75bf8b9a45542518231 + React-defaultsnativemodule: 97803ba9b8b7d37563e1305a081dfd85afe275b3 + React-domnativemodule: e7e1dfe55383cef62859f1fc2b7c9d53d3729268 + React-Fabric: a72fd3a459361b5d274d100c01ebedd3e8f444a8 + React-FabricComponents: fa11e8971cc307409e58af87648434db5f609c70 + React-FabricImage: 190bdc91b589278974b2c0134764ede293787de2 + React-featureflags: 18a64d65813eaa2bf804e4a1e72f025ddf5412a5 + React-featureflagsnativemodule: 1ebc0b9958860f8bfcbe18347d0d3acf8bd40d56 + React-graphics: e585fd64bcf0acf85c96ae6c24cbe9ca32bbd843 + React-hermes: f8dc722e66351452c6f1e36ffb784e5cb1ed84da + React-idlecallbacksnativemodule: b889d2581e9e227cc6ef01bf863946193499e5a5 + React-ImageManager: 6f8e09494b239ecc9e23b2e9d353263cb4b64282 + React-jserrorhandler: c75a76d5f29c2780f6bd79706a6f545007444718 + React-jsi: 0237a6aa42eb028ca8d85548d4b245d87e20cf32 + React-jsiexecutor: c29334a7ccfbcdced234bc66d2607bbcb6047ffb + React-jsinspector: d0e546c1419e06c05892953faaaa3522d6d1f192 + React-jsinspectorcdp: 760d2e021125781465652faeef7c1052ec920dbe + React-jsinspectornetwork: c3d5c94224538bc28ba7930fc2cb2a7929951098 + React-jsinspectortracing: 2c2ffa9432b3bece0c9ad049e8d135b745c3c625 + React-jsitooling: 90a5e4b6a3c68ad01fa2a25a18f0a261c85ba9e2 + React-jsitracing: 4e084d954ce053be92353eb1dd58d7ec6cca0fa4 + React-logger: b3a3601595d922b9bc32ce18069e5cf39caf8851 + React-Mapbuffer: 2b80489685d4b3cdf1f226dc00799fefd6c3831a + React-microtasksnativemodule: 72b923db3f2fb551f3b309d42718b40ac0736361 + React-NativeModulesApple: 9211e6a6223b859aec2915bcb857f387096217fe + React-networking: 7cf0f935436601081c87a46f625fc646114162c1 + React-oscompat: c497340abdb9e186325cb31576b0bf86b875325a + React-perflogger: 87c8b698d66e54568d73c97b35b7b8376116104f + React-performancecdpmetrics: 15c10fa1722637742c67d1a6ae4aba93fa95e99a + React-performancetimeline: 321eb744821877ab39727a74f82cdf7d4b17b8ac + React-RCTActionSheet: b73dbed7415b4bc38dba811b6f179fda9dca27d7 + React-RCTAnimation: 36ab17b2ec6f49c81018d4bbcc011f1607677e2d + React-RCTAppDelegate: 8e8b5f9aff6f967452ec7d9043add289467e52e3 + React-RCTBlob: ced1eb5b7510e7521b44bc9a9d36affad2d7dac4 + React-RCTFabric: ecd5926d14f9b8eef673265a9f7ac908a9cad3dd + React-RCTFBReactNativeSpec: 53ba1ffdaaea6319f2d962967c5c0e0d1a34da11 + React-RCTImage: bec64fe4679bd2f8eb6e297e6470574ea6714687 + React-RCTLinking: b089e72c05df550c0bc714c4bed3c2b788cae043 + React-RCTNetwork: a13a80aaf6046726a65446cd80f9c1f843f29a77 + React-RCTPushNotification: 6ad7bd77210994228ef7ffca82e20310b2d745d9 + React-RCTRuntime: 6a73d84a86a3ba3d37e0477023760d2770a0a7ff + React-RCTSettings: 652b63916b6559724b71d903f87a57bb79e7cea8 + React-RCTTest: d5d8a30bbd08e43a765dd6195317f34a2e260ebe + React-RCTText: 2f9b2efb4908c52985e81d3fc2c26a00ac499d50 + React-RCTVibration: 5f238e560e48307e3e7cbbac8598ccd05e5f85bf + React-rendererconsistency: 2be55f98795d12824fb80c3ad5b5dd0b049c72d5 + React-renderercss: e7915438669058fcc5aaf94da765de2ce14790b5 + React-rendererdebug: 36502956552e699744420ce24533b3a4b59348b3 + React-RuntimeApple: bb788e17d6e1fbc45884c1b6495e88fd0bea1068 + React-RuntimeCore: 9dc8075bf1ba46276e57631102c7ee22ee8923e3 + React-runtimeexecutor: dd96ae1c82153db07f7f51b69917f155c8cb464f + React-RuntimeHermes: 0b9db425db8d02dfe9d8ce823358e2940b426bc7 + React-runtimescheduler: 359fb1bc12a613b98896ed5cbc4893313d6ffb3b + React-timing: c1a21b190923f7a624e50c8f12a620e284607401 + React-utils: ca44fe5105018077057190cd2975aa45dfd1d562 + React-webperformancenativemodule: 422dcfe1f284c3b2d845b49035b93ab6ef06e646 + ReactAppDependencyProvider: 34e3fd629907fa471bb0d15bf355d23d168f8bba + ReactCodegen: 5a2d9dbe44f2b16e06cbe68d2215d71776ae5c8b + ReactCommon: eede5f65bee28181fc7599b7b81d56187a35504d + ReactCommon-Samples: 4adf621385a2fb988aa19827911680f74c7e947d ScreenshotManager: 370045f403c555760ae26d85a01dda89d257fa7b SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: 59290f2ce3fc5c34797a21244288cad99b357b63 + Yoga: c658fcc104ea2118aeff02267ce9d805826dab5a PODFILE CHECKSUM: 995beda3236c2c76801e7a4efc7fedcd390220e6 From a41e886ef00c5d29ce0c2d18507ea9335f35f924 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 18 Sep 2025 23:01:25 +0200 Subject: [PATCH 08/34] fix(test): mock dispatch_async in RCTBlobManagerTests --- .../RNTesterUnitTests/RCTBlobManagerTests.m | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/rn-tester/RNTesterUnitTests/RCTBlobManagerTests.m b/packages/rn-tester/RNTesterUnitTests/RCTBlobManagerTests.m index 2bbf23e657dda3..8e84ecaa225325 100644 --- a/packages/rn-tester/RNTesterUnitTests/RCTBlobManagerTests.m +++ b/packages/rn-tester/RNTesterUnitTests/RCTBlobManagerTests.m @@ -7,8 +7,11 @@ #import +#import #import +RCT_MOCK_REF(RCTBlobManager, dispatch_async); + @interface RCTBlobManagerTests : XCTestCase @end @@ -68,8 +71,17 @@ - (void)testRemove XCTAssertNil([_module resolve:_blobId offset:0 size:_data.length]); } +static void dispatch_async_mock([[maybe_unused]] dispatch_queue_t queue, dispatch_block_t block) +{ + if (block) { + block(); + } +} + - (void)testCreateFromParts { + RCT_MOCK_SET(RCTBlobManager, dispatch_async, dispatch_async_mock); + NSDictionary *blobData = @{ @"blobId" : _blobId, @"offset" : @0, @@ -96,6 +108,8 @@ - (void)testCreateFromParts NSData *result = [_module resolve:resultId offset:0 size:expectedData.length]; XCTAssertTrue([expectedData isEqualToData:result]); + + RCT_MOCK_RESET(RCTBlobManager, dispatch_async); } @end From 970228cee20c3427f2851f5053ca048cb1cd0698 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 18 Sep 2025 23:53:23 +0200 Subject: [PATCH 09/34] fix(test): use color constants for RCTConvert_UIColorTests::testGenerateFallbacks --- .../RCTConvert_UIColorTests.m | 74 ++++++++++--------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/packages/rn-tester/RNTesterUnitTests/RCTConvert_UIColorTests.m b/packages/rn-tester/RNTesterUnitTests/RCTConvert_UIColorTests.m index d0bfb605dbe7a9..f85acc7079cdbd 100644 --- a/packages/rn-tester/RNTesterUnitTests/RCTConvert_UIColorTests.m +++ b/packages/rn-tester/RNTesterUnitTests/RCTConvert_UIColorTests.m @@ -120,47 +120,56 @@ - (void)testCompositeDynamicColor [UITraitCollection setCurrentTraitCollection:savedTraitCollection]; } +static NSArray *UIColorAsNSUInt(UIColor *color) +{ + CGFloat red, green, blue, alpha; + + [color getRed:&red green:&green blue:&blue alpha:&alpha]; + + return @[ @(alpha * 255), @(red * 255), @(green * 255), @(blue * 255) ]; +} + - (void)testGenerateFallbacks { - NSDictionary *semanticColors = @{ + NSDictionary *> *semanticColors = @{ // https://developer.apple.com/documentation/uikit/uicolor/ui_element_colors // Label Colors - @"labelColor" : @(0xFF000000), - @"secondaryLabelColor" : @(0x993c3c43), - @"tertiaryLabelColor" : @(0x4c3c3c43), - @"quaternaryLabelColor" : @(0x2d3c3c43), + @"labelColor" : UIColorAsNSUInt(UIColor.labelColor), + @"secondaryLabelColor" : UIColorAsNSUInt(UIColor.secondaryLabelColor), + @"tertiaryLabelColor" : UIColorAsNSUInt(UIColor.tertiaryLabelColor), + @"quaternaryLabelColor" : UIColorAsNSUInt(UIColor.quaternaryLabelColor), // Fill Colors - @"systemFillColor" : @(0x33787880), - @"secondarySystemFillColor" : @(0x28787880), - @"tertiarySystemFillColor" : @(0x1e767680), - @"quaternarySystemFillColor" : @(0x14747480), + @"systemFillColor" : UIColorAsNSUInt(UIColor.systemFillColor), + @"secondarySystemFillColor" : UIColorAsNSUInt(UIColor.secondarySystemFillColor), + @"tertiarySystemFillColor" : UIColorAsNSUInt(UIColor.tertiarySystemFillColor), + @"quaternarySystemFillColor" : UIColorAsNSUInt(UIColor.quaternarySystemFillColor), // Text Colors - @"placeholderTextColor" : @(0x4c3c3c43), + @"placeholderTextColor" : UIColorAsNSUInt(UIColor.placeholderTextColor), // Standard Content Background Colors - @"systemBackgroundColor" : @(0xFFffffff), - @"secondarySystemBackgroundColor" : @(0xFFf2f2f7), - @"tertiarySystemBackgroundColor" : @(0xFFffffff), + @"systemBackgroundColor" : UIColorAsNSUInt(UIColor.systemBackgroundColor), + @"secondarySystemBackgroundColor" : UIColorAsNSUInt(UIColor.secondarySystemBackgroundColor), + @"tertiarySystemBackgroundColor" : UIColorAsNSUInt(UIColor.tertiarySystemBackgroundColor), // Grouped Content Background Colors - @"systemGroupedBackgroundColor" : @(0xFFf2f2f7), - @"secondarySystemGroupedBackgroundColor" : @(0xFFffffff), - @"tertiarySystemGroupedBackgroundColor" : @(0xFFf2f2f7), + @"systemGroupedBackgroundColor" : UIColorAsNSUInt(UIColor.systemGroupedBackgroundColor), + @"secondarySystemGroupedBackgroundColor" : UIColorAsNSUInt(UIColor.secondarySystemGroupedBackgroundColor), + @"tertiarySystemGroupedBackgroundColor" : UIColorAsNSUInt(UIColor.tertiarySystemGroupedBackgroundColor), // Separator Colors - @"separatorColor" : @(0x493c3c43), - @"opaqueSeparatorColor" : @(0xFFc6c6c8), + @"separatorColor" : UIColorAsNSUInt(UIColor.separatorColor), + @"opaqueSeparatorColor" : UIColorAsNSUInt(UIColor.opaqueSeparatorColor), // Link Color - @"linkColor" : @(0xFF007aff), + @"linkColor" : UIColorAsNSUInt(UIColor.linkColor), // https://developer.apple.com/documentation/uikit/uicolor/standard_colors // Adaptable Colors - @"systemBrownColor" : @(0xFFa2845e), - @"systemIndigoColor" : @(0xFF5856d6), + @"systemBrownColor" : UIColorAsNSUInt(UIColor.systemBrownColor), + @"systemIndigoColor" : UIColorAsNSUInt(UIColor.systemIndigoColor), // Adaptable Gray Colors - @"systemGray2Color" : @(0xFFaeaeb2), - @"systemGray3Color" : @(0xFFc7c7cc), - @"systemGray4Color" : @(0xFFd1d1d6), - @"systemGray5Color" : @(0xFFe5e5ea), - @"systemGray6Color" : @(0xFFf2f2f7), + @"systemGray2Color" : UIColorAsNSUInt(UIColor.systemGray2Color), + @"systemGray3Color" : UIColorAsNSUInt(UIColor.systemGray3Color), + @"systemGray4Color" : UIColorAsNSUInt(UIColor.systemGray4Color), + @"systemGray5Color" : UIColorAsNSUInt(UIColor.systemGray5Color), + @"systemGray6Color" : UIColorAsNSUInt(UIColor.systemGray6Color), // Clear Color - @"clearColor" : @(0x00000000), + @"clearColor" : UIColorAsNSUInt(UIColor.clearColor), }; id savedTraitCollection = nil; @@ -175,12 +184,11 @@ - (void)testGenerateFallbacks UIColor *value = [RCTConvert UIColor:json]; XCTAssertNotNil(value); - NSNumber *fallback = [semanticColors objectForKey:semanticColor]; - NSUInteger rgbValue = [fallback unsignedIntegerValue]; - NSUInteger alpha1 = ((rgbValue & 0xFF000000) >> 24); - NSUInteger red1 = ((rgbValue & 0x00FF0000) >> 16); - NSUInteger green1 = ((rgbValue & 0x0000FF00) >> 8); - NSUInteger blue1 = ((rgbValue & 0x000000FF) >> 0); + NSArray *fallback = [semanticColors objectForKey:semanticColor]; + NSUInteger alpha1 = [fallback[0] unsignedIntegerValue]; + NSUInteger red1 = [fallback[1] unsignedIntegerValue]; + NSUInteger green1 = [fallback[2] unsignedIntegerValue]; + NSUInteger blue1 = [fallback[3] unsignedIntegerValue]; CGFloat rgba[4]; RCTGetRGBAColorComponents([value CGColor], rgba); From d9db57d45773cbad9089ebe653bffad6c44a0291 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 18 Sep 2025 23:54:02 +0200 Subject: [PATCH 10/34] fix(test): update baseline strings in RCTBundleURLProviderTests --- .../rn-tester/RNTesterUnitTests/RCTBundleURLProviderTests.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rn-tester/RNTesterUnitTests/RCTBundleURLProviderTests.m b/packages/rn-tester/RNTesterUnitTests/RCTBundleURLProviderTests.m index 6d1fb5e1cf47e0..3a2b33db037582 100644 --- a/packages/rn-tester/RNTesterUnitTests/RCTBundleURLProviderTests.m +++ b/packages/rn-tester/RNTesterUnitTests/RCTBundleURLProviderTests.m @@ -27,7 +27,7 @@ URLWithString: [NSString stringWithFormat: - @"http://localhost:8081/%@.bundle?platform=%@&dev=true&lazy=true&minify=false&inlineSourceMap=false&modulesOnly=false&runModule=true&app=com.apple.dt.xctest.tool", + @"http://localhost:8081/%@.bundle?platform=%@&dev=true&lazy=true&minify=false&inlineSourceMap=false&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server&app=com.apple.dt.xctest.tool", testFile, RCTPlatformName]]; } @@ -38,7 +38,7 @@ URLWithString: [NSString stringWithFormat: - @"http://192.168.1.1:8081/%@.bundle?platform=%@&dev=true&lazy=true&minify=false&inlineSourceMap=false&modulesOnly=false&runModule=true&app=com.apple.dt.xctest.tool", + @"http://192.168.1.1:8081/%@.bundle?platform=%@&dev=true&lazy=true&minify=false&inlineSourceMap=false&modulesOnly=false&runModule=true&excludeSource=true&sourcePaths=url-server&app=com.apple.dt.xctest.tool", testFile, RCTPlatformName]]; } From cd572abf893e06489613aadacf61f09d3376cc2d Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 18 Sep 2025 23:55:56 +0200 Subject: [PATCH 11/34] fix(test): use default xctestplan environment variable values in tests, do not attach debugger to tests by default --- .../xcschemes/RNTesterIntegrationTests.xcscheme | 4 ++-- .../xcshareddata/xcschemes/RNTesterUnitTests.xcscheme | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme b/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme index b45cce49812b48..6112df01d1b93c 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme +++ b/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme @@ -24,8 +24,8 @@ + selectedDebuggerIdentifier = "" + selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn" + shouldUseLaunchSchemeArgsEnv = "NO"> Date: Thu, 18 Sep 2025 23:56:36 +0200 Subject: [PATCH 12/34] fix(test): do not skip RCTBundleURLProviderTests in unit tests --- .../xcshareddata/xcschemes/RNTesterUnitTests.xcscheme | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterUnitTests.xcscheme b/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterUnitTests.xcscheme index 8742bd2933b23a..3c08b6c37784ea 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterUnitTests.xcscheme +++ b/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterUnitTests.xcscheme @@ -67,11 +67,6 @@ BlueprintName = "RNTesterUnitTests" ReferencedContainer = "container:RNTesterPods.xcodeproj"> - - - - From 4c515447836fc732452a5cf4588fc2db09610e1d Mon Sep 17 00:00:00 2001 From: artus9033 Date: Sat, 20 Sep 2025 14:37:51 +0200 Subject: [PATCH 13/34] fix: typechecking in IntegrationTestsApp.js --- packages/rn-tester/IntegrationTests/IntegrationTestsApp.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rn-tester/IntegrationTests/IntegrationTestsApp.js b/packages/rn-tester/IntegrationTests/IntegrationTestsApp.js index c9f736ab38db76..fe8443182c4502 100644 --- a/packages/rn-tester/IntegrationTests/IntegrationTestsApp.js +++ b/packages/rn-tester/IntegrationTests/IntegrationTestsApp.js @@ -35,7 +35,7 @@ const TESTS = [ TESTS.forEach(test => AppRegistry.registerComponent( - test.displayName || test.name || '', + (test as React.ComponentType).displayName || test.name || '', /* $FlowFixMe[incompatible-type] (>=0.54.0 site=react_native_fb,react_native_ * oss) This comment suppresses an error found when Flow v0.54 was deployed. * To see the error delete this comment and run Flow. */ @@ -83,7 +83,7 @@ class IntegrationTestsApp extends React.Component<{...}, $FlowFixMe> { */ style={styles.row}> - {test.displayName || test.name} + {(test as React.ComponentType).displayName || test.name} , , From 462b28b6fd274327f9733ed0e451b73504616642 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Sat, 20 Sep 2025 15:44:51 +0200 Subject: [PATCH 14/34] chore: update Podfile.lock --- packages/rn-tester/Podfile.lock | 165 ++++++++++++++------------------ 1 file changed, 73 insertions(+), 92 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index dc7e2b2073edfe..f319dc3712c962 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -582,7 +582,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -625,7 +624,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -651,7 +649,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -677,7 +674,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -703,7 +699,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -729,7 +724,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -755,7 +749,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -785,7 +778,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -811,7 +803,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -837,7 +828,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -863,7 +853,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -891,7 +880,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -917,7 +905,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -943,7 +930,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -969,7 +955,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -995,7 +980,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1021,7 +1005,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1047,7 +1030,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1074,7 +1056,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1100,7 +1081,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1129,7 +1109,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1155,7 +1134,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1181,7 +1159,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1209,7 +1186,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired - - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1843,6 +1819,7 @@ PODS: - glog - RCT-Folly - RCT-Folly/Fabric + - React-jsinspectornetwork - React-oscompat - React-timing - SocketRocket @@ -1928,6 +1905,7 @@ PODS: - RCT-Folly/Fabric - React-featureflags - React-jsinspectornetwork + - React-jsinspectortracing - React-performancetimeline - React-timing - SocketRocket @@ -2048,6 +2026,7 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric + - RCTSwiftUIWrapper - React-Core - React-debug - React-Fabric @@ -2781,7 +2760,7 @@ SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 - FBLazyVector: ce5ab2aee538f72a59b0d71ad65058779abff1b4 + FBLazyVector: a32c51b919b6a4237e7c817ee380eefa4b1e3065 fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 hermes-engine: 4c9fc96d1a4a974b152d0f6ed437e54327bbe7d7 @@ -2790,76 +2769,78 @@ SPEC CHECKSUMS: OCMock: 589f2c84dacb1f5aaf6e4cec1f292551fe748e74 RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 RCTDeprecation: 3808e36294137f9ee5668f4df2e73dc079cd1dcf - RCTRequired: 8d03441b26efb265c0d2c8bab9a5c2b820b4640e - RCTTypeSafety: 14b0fde38c5de28935bf2bb941921a29ac8097e1 - React: 2878deed39c5846ae066436d33eed7c5e7569579 - React-callinvoker: c9994ff021493a2aba455a34f66824a350995aba - React-Core: b2ceeea4bad3ea334aec2b789e86461f6ddbea84 - React-CoreModules: 6a7c1866e5ae0a0ca3207a55cf765697f70ae4d8 - React-cxxreact: 61ff2b8d438c67cb1e30ca491f93bb1561b77522 - React-debug: 3aba6e6a93f732cfa9dba75bf8b9a45542518231 - React-defaultsnativemodule: 97803ba9b8b7d37563e1305a081dfd85afe275b3 - React-domnativemodule: e7e1dfe55383cef62859f1fc2b7c9d53d3729268 - React-Fabric: a72fd3a459361b5d274d100c01ebedd3e8f444a8 - React-FabricComponents: fa11e8971cc307409e58af87648434db5f609c70 - React-FabricImage: 190bdc91b589278974b2c0134764ede293787de2 - React-featureflags: 18a64d65813eaa2bf804e4a1e72f025ddf5412a5 - React-featureflagsnativemodule: 1ebc0b9958860f8bfcbe18347d0d3acf8bd40d56 - React-graphics: e585fd64bcf0acf85c96ae6c24cbe9ca32bbd843 - React-hermes: f8dc722e66351452c6f1e36ffb784e5cb1ed84da - React-idlecallbacksnativemodule: b889d2581e9e227cc6ef01bf863946193499e5a5 - React-ImageManager: 6f8e09494b239ecc9e23b2e9d353263cb4b64282 - React-jserrorhandler: c75a76d5f29c2780f6bd79706a6f545007444718 - React-jsi: 0237a6aa42eb028ca8d85548d4b245d87e20cf32 - React-jsiexecutor: c29334a7ccfbcdced234bc66d2607bbcb6047ffb - React-jsinspector: d0e546c1419e06c05892953faaaa3522d6d1f192 - React-jsinspectorcdp: 760d2e021125781465652faeef7c1052ec920dbe - React-jsinspectornetwork: c3d5c94224538bc28ba7930fc2cb2a7929951098 - React-jsinspectortracing: 2c2ffa9432b3bece0c9ad049e8d135b745c3c625 - React-jsitooling: 90a5e4b6a3c68ad01fa2a25a18f0a261c85ba9e2 - React-jsitracing: 4e084d954ce053be92353eb1dd58d7ec6cca0fa4 - React-logger: b3a3601595d922b9bc32ce18069e5cf39caf8851 - React-Mapbuffer: 2b80489685d4b3cdf1f226dc00799fefd6c3831a - React-microtasksnativemodule: 72b923db3f2fb551f3b309d42718b40ac0736361 - React-NativeModulesApple: 9211e6a6223b859aec2915bcb857f387096217fe - React-networking: 7cf0f935436601081c87a46f625fc646114162c1 - React-oscompat: c497340abdb9e186325cb31576b0bf86b875325a - React-perflogger: 87c8b698d66e54568d73c97b35b7b8376116104f - React-performancecdpmetrics: 15c10fa1722637742c67d1a6ae4aba93fa95e99a - React-performancetimeline: 321eb744821877ab39727a74f82cdf7d4b17b8ac - React-RCTActionSheet: b73dbed7415b4bc38dba811b6f179fda9dca27d7 - React-RCTAnimation: 36ab17b2ec6f49c81018d4bbcc011f1607677e2d - React-RCTAppDelegate: 8e8b5f9aff6f967452ec7d9043add289467e52e3 - React-RCTBlob: ced1eb5b7510e7521b44bc9a9d36affad2d7dac4 - React-RCTFabric: ecd5926d14f9b8eef673265a9f7ac908a9cad3dd - React-RCTFBReactNativeSpec: 53ba1ffdaaea6319f2d962967c5c0e0d1a34da11 - React-RCTImage: bec64fe4679bd2f8eb6e297e6470574ea6714687 - React-RCTLinking: b089e72c05df550c0bc714c4bed3c2b788cae043 - React-RCTNetwork: a13a80aaf6046726a65446cd80f9c1f843f29a77 - React-RCTPushNotification: 6ad7bd77210994228ef7ffca82e20310b2d745d9 - React-RCTRuntime: 6a73d84a86a3ba3d37e0477023760d2770a0a7ff - React-RCTSettings: 652b63916b6559724b71d903f87a57bb79e7cea8 - React-RCTTest: d5d8a30bbd08e43a765dd6195317f34a2e260ebe - React-RCTText: 2f9b2efb4908c52985e81d3fc2c26a00ac499d50 - React-RCTVibration: 5f238e560e48307e3e7cbbac8598ccd05e5f85bf - React-rendererconsistency: 2be55f98795d12824fb80c3ad5b5dd0b049c72d5 - React-renderercss: e7915438669058fcc5aaf94da765de2ce14790b5 - React-rendererdebug: 36502956552e699744420ce24533b3a4b59348b3 - React-RuntimeApple: bb788e17d6e1fbc45884c1b6495e88fd0bea1068 - React-RuntimeCore: 9dc8075bf1ba46276e57631102c7ee22ee8923e3 - React-runtimeexecutor: dd96ae1c82153db07f7f51b69917f155c8cb464f - React-RuntimeHermes: 0b9db425db8d02dfe9d8ce823358e2940b426bc7 - React-runtimescheduler: 359fb1bc12a613b98896ed5cbc4893313d6ffb3b - React-timing: c1a21b190923f7a624e50c8f12a620e284607401 - React-utils: ca44fe5105018077057190cd2975aa45dfd1d562 - React-webperformancenativemodule: 422dcfe1f284c3b2d845b49035b93ab6ef06e646 - ReactAppDependencyProvider: 34e3fd629907fa471bb0d15bf355d23d168f8bba + RCTRequired: 1526a1db0cbc3bad8c0d8eb2d673c7eef14a5475 + RCTSwiftUI: 873653177e4beeebe13b04b1d900bb29d8e3899d + RCTSwiftUIWrapper: 6b6dd981344a026200ba379d4c10cff5f9612d05 + RCTTypeSafety: 9ad07caf3a86b5b9ca756af8b6ddf5474f3b7a1d + React: dd7e425a4f5e0c9ac278b2876787b0b12b30999a + React-callinvoker: 41a6035928f70452bfb6dd8483504faf291e21db + React-Core: c4dc2ee9a2eb7fb90c44232651406cceeda26dd1 + React-CoreModules: 135424fe927993f0ba9856ee24e95f41a29a9a9c + React-cxxreact: af952ca777cb5c0ea3c808ce3c5e8f2c757d36ca + React-debug: 9e0d4740eb5e867f982aad53705c82cbbbbec319 + React-defaultsnativemodule: 8e1c87188eed37e144c67bb641e84e90de413528 + React-domnativemodule: c89b84e14ef1d547453fdd68c2e494a23395037d + React-Fabric: ffeb851ba852f9289eaee1057ea000c973445a10 + React-FabricComponents: bc044dbcfa252dd24a6b94d2ef465d597d35b254 + React-FabricImage: 71ac9c12b0b580512fd066a29cc0ae4cef4c287e + React-featureflags: 4402c3d35e7da29e16f0c8504dda56e9446a5aac + React-featureflagsnativemodule: efa8cf894d5ff817cc195c24f56b6687eaea1b64 + React-graphics: 5ef5b90ad8151d9787ee41ae769df9f19e8b0a8f + React-hermes: 7b396ffc456ece6585e389dc2ef1c96fc24a5a25 + React-idlecallbacksnativemodule: 83a2b2e0a8dec9c4288f21aec35f24c03ff33116 + React-ImageManager: 3caea0877dd27c802c8b3de84407dc9d6eff46cb + React-jserrorhandler: 0cc79781bd4077b3201719343eb7abaab40d9f60 + React-jsi: 5e6957189f58a1f4cb13a664e973c920fa3c98c9 + React-jsiexecutor: 50090690b04bf9834fb876923036759b438a1cb3 + React-jsinspector: 5c01afdc6608f2cb01af6a89513aaf49e1ea854f + React-jsinspectorcdp: 53664b83c1a255dff5f3c521b876def2d0065239 + React-jsinspectornetwork: f2285114b38e8f344270cb961e654c12b6032b83 + React-jsinspectortracing: eb37c9698077955c393f26b2d32f2c38cfc51628 + React-jsitooling: faf38aed1dafa051c9ad802c3f9f67df9f153994 + React-jsitracing: 0551ea59006bbcc081e6572ca224bf58d0321202 + React-logger: b89e75773e40a7c50ef4efc38c7834b5123f73b2 + React-Mapbuffer: 4221ba3b62f717161a5d341c594e69bf63c900d6 + React-microtasksnativemodule: 50a703bbe679c0022e776669b2637328cb17d4df + React-NativeModulesApple: 2a47f255ad7685143237871e1fa1c38918886531 + React-networking: 113985d3e1b6ba8f0e6af0886869820fc0a6abde + React-oscompat: 6fe6ca06ea752e3ecddd7e9cb59b4a89140aedd4 + React-perflogger: 8766d7698db8a7fa7b72bb2da6222af041342016 + React-performancecdpmetrics: 8a6dcad0c9e2c7ca59eb3a09c2f6ebe9e8540bcd + React-performancetimeline: abda749b41ac8d8ed6f06ef3805c0ae9e818a51c + React-RCTActionSheet: bf8055073ecb78e62e2a1c1d66f22991b3935f67 + React-RCTAnimation: d44c42ec8d4e36a4c9f01371879b7830d058f4e9 + React-RCTAppDelegate: e963f33886e135d776482828d837c681f7e8bbaa + React-RCTBlob: 1a54d8b7240f3a652b97f72fadab240df2798375 + React-RCTFabric: fd9f9a61db991b67959f5fa3673b081adbc4db01 + React-RCTFBReactNativeSpec: a39f48b38067d200a88d09cce1bf1f2b0e8d86d2 + React-RCTImage: 76121f600738abcdee1b4014942f010200a35750 + React-RCTLinking: ad308ffa594a24b04ee624eb1fcf27ee39eca531 + React-RCTNetwork: 0b5d437440f831e8f4ad7086eee55c8da1033d11 + React-RCTPushNotification: acf0b8372bd1d1dd7a506f9da0f074dfb1cfd0de + React-RCTRuntime: beccdcd250b9a199256cac05a5cef3a5eab2a1b9 + React-RCTSettings: 473b434a9a74004b78e28c6b57f17552dd855692 + React-RCTTest: 9c3a5f742dc26034f7dda575105a91cdbae3cc8c + React-RCTText: 71c6f55ead37dc13a6a925114e2f94557c140e40 + React-RCTVibration: fc1cfa56096810a102afbafded63bddea0d913e1 + React-rendererconsistency: 42dd1fcba7db48b037d4bc73aa35cc019aac8b46 + React-renderercss: c4816d071cfe94a3ec8019e5b22f5011996e6bb2 + React-rendererdebug: c7168e8df828345312e8e6f3652af374aeb24308 + React-RuntimeApple: bb726702468e6a239a519a865c797baf27550d7d + React-RuntimeCore: 4ea41c2645827e63644b9d6d8ebd641c3bc2a2ae + React-runtimeexecutor: 19d34d09a72642532e8bb59dff00286a370ebf02 + React-RuntimeHermes: 0c304812412bf3befd665720cd5ce323d75979ea + React-runtimescheduler: 3d40986e34d1e3c456678595c6c4cbbf814d229d + React-timing: 6d2fa784270357f0d1b0f32c6e004b08119bbc8e + React-utils: 0c78fc776f32c9fc022e40c577e8ad4f5aa4ec03 + React-webperformancenativemodule: 4b7d3e9c6b7f660cb0228109bb8f541ca146081d + ReactAppDependencyProvider: 7a2c2347f5b6feb60f43b74a5722f6ae693d6337 ReactCodegen: 5a2d9dbe44f2b16e06cbe68d2215d71776ae5c8b - ReactCommon: eede5f65bee28181fc7599b7b81d56187a35504d - ReactCommon-Samples: 4adf621385a2fb988aa19827911680f74c7e947d + ReactCommon: 7e20139af0efdfceb93a2e9547895c1fa6fd0aa0 + ReactCommon-Samples: 6dc6a7aa090c88293f966b815864685422e6a371 ScreenshotManager: 370045f403c555760ae26d85a01dda89d257fa7b SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: c658fcc104ea2118aeff02267ce9d805826dab5a + Yoga: d9219eff95362e6c29a95c0583069b6470d4f607 PODFILE CHECKSUM: 995beda3236c2c76801e7a4efc7fedcd390220e6 From c9484f1f31ab821847abd1dae23cd6b3d8600ee9 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Sat, 20 Sep 2025 17:40:05 +0200 Subject: [PATCH 15/34] chore: re-enable debugger in RNTester unit and integration tests --- .../xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme | 4 ++-- .../xcshareddata/xcschemes/RNTesterUnitTests.xcscheme | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme b/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme index 6112df01d1b93c..b45cce49812b48 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme +++ b/packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterIntegrationTests.xcscheme @@ -24,8 +24,8 @@ Date: Sat, 20 Sep 2025 20:49:33 +0200 Subject: [PATCH 16/34] chore: update Podfile --- packages/rn-tester/Podfile.lock | 142 ++++++++++++++++---------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index f319dc3712c962..1c473efc26abc7 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -2760,87 +2760,87 @@ SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 - FBLazyVector: a32c51b919b6a4237e7c817ee380eefa4b1e3065 + FBLazyVector: e3bc9b7cc6cc9d727a2385d12d2c58b6e545e22b fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 - hermes-engine: 4c9fc96d1a4a974b152d0f6ed437e54327bbe7d7 + hermes-engine: b18262a626b43561b2fdb63766417735dedf9731 MyNativeView: 26b517931cc8bfc7b602c410572b323348185461 NativeCxxModuleExample: 6a9788a749d522f8b6cc55a56f4760a670e4e2eb OCMock: 589f2c84dacb1f5aaf6e4cec1f292551fe748e74 RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 RCTDeprecation: 3808e36294137f9ee5668f4df2e73dc079cd1dcf - RCTRequired: 1526a1db0cbc3bad8c0d8eb2d673c7eef14a5475 - RCTSwiftUI: 873653177e4beeebe13b04b1d900bb29d8e3899d - RCTSwiftUIWrapper: 6b6dd981344a026200ba379d4c10cff5f9612d05 - RCTTypeSafety: 9ad07caf3a86b5b9ca756af8b6ddf5474f3b7a1d - React: dd7e425a4f5e0c9ac278b2876787b0b12b30999a - React-callinvoker: 41a6035928f70452bfb6dd8483504faf291e21db - React-Core: c4dc2ee9a2eb7fb90c44232651406cceeda26dd1 - React-CoreModules: 135424fe927993f0ba9856ee24e95f41a29a9a9c - React-cxxreact: af952ca777cb5c0ea3c808ce3c5e8f2c757d36ca - React-debug: 9e0d4740eb5e867f982aad53705c82cbbbbec319 - React-defaultsnativemodule: 8e1c87188eed37e144c67bb641e84e90de413528 - React-domnativemodule: c89b84e14ef1d547453fdd68c2e494a23395037d - React-Fabric: ffeb851ba852f9289eaee1057ea000c973445a10 - React-FabricComponents: bc044dbcfa252dd24a6b94d2ef465d597d35b254 - React-FabricImage: 71ac9c12b0b580512fd066a29cc0ae4cef4c287e - React-featureflags: 4402c3d35e7da29e16f0c8504dda56e9446a5aac - React-featureflagsnativemodule: efa8cf894d5ff817cc195c24f56b6687eaea1b64 - React-graphics: 5ef5b90ad8151d9787ee41ae769df9f19e8b0a8f - React-hermes: 7b396ffc456ece6585e389dc2ef1c96fc24a5a25 - React-idlecallbacksnativemodule: 83a2b2e0a8dec9c4288f21aec35f24c03ff33116 - React-ImageManager: 3caea0877dd27c802c8b3de84407dc9d6eff46cb - React-jserrorhandler: 0cc79781bd4077b3201719343eb7abaab40d9f60 - React-jsi: 5e6957189f58a1f4cb13a664e973c920fa3c98c9 - React-jsiexecutor: 50090690b04bf9834fb876923036759b438a1cb3 - React-jsinspector: 5c01afdc6608f2cb01af6a89513aaf49e1ea854f - React-jsinspectorcdp: 53664b83c1a255dff5f3c521b876def2d0065239 - React-jsinspectornetwork: f2285114b38e8f344270cb961e654c12b6032b83 - React-jsinspectortracing: eb37c9698077955c393f26b2d32f2c38cfc51628 - React-jsitooling: faf38aed1dafa051c9ad802c3f9f67df9f153994 - React-jsitracing: 0551ea59006bbcc081e6572ca224bf58d0321202 - React-logger: b89e75773e40a7c50ef4efc38c7834b5123f73b2 - React-Mapbuffer: 4221ba3b62f717161a5d341c594e69bf63c900d6 - React-microtasksnativemodule: 50a703bbe679c0022e776669b2637328cb17d4df - React-NativeModulesApple: 2a47f255ad7685143237871e1fa1c38918886531 - React-networking: 113985d3e1b6ba8f0e6af0886869820fc0a6abde - React-oscompat: 6fe6ca06ea752e3ecddd7e9cb59b4a89140aedd4 - React-perflogger: 8766d7698db8a7fa7b72bb2da6222af041342016 - React-performancecdpmetrics: 8a6dcad0c9e2c7ca59eb3a09c2f6ebe9e8540bcd - React-performancetimeline: abda749b41ac8d8ed6f06ef3805c0ae9e818a51c - React-RCTActionSheet: bf8055073ecb78e62e2a1c1d66f22991b3935f67 - React-RCTAnimation: d44c42ec8d4e36a4c9f01371879b7830d058f4e9 - React-RCTAppDelegate: e963f33886e135d776482828d837c681f7e8bbaa - React-RCTBlob: 1a54d8b7240f3a652b97f72fadab240df2798375 - React-RCTFabric: fd9f9a61db991b67959f5fa3673b081adbc4db01 - React-RCTFBReactNativeSpec: a39f48b38067d200a88d09cce1bf1f2b0e8d86d2 - React-RCTImage: 76121f600738abcdee1b4014942f010200a35750 - React-RCTLinking: ad308ffa594a24b04ee624eb1fcf27ee39eca531 - React-RCTNetwork: 0b5d437440f831e8f4ad7086eee55c8da1033d11 - React-RCTPushNotification: acf0b8372bd1d1dd7a506f9da0f074dfb1cfd0de - React-RCTRuntime: beccdcd250b9a199256cac05a5cef3a5eab2a1b9 - React-RCTSettings: 473b434a9a74004b78e28c6b57f17552dd855692 - React-RCTTest: 9c3a5f742dc26034f7dda575105a91cdbae3cc8c - React-RCTText: 71c6f55ead37dc13a6a925114e2f94557c140e40 - React-RCTVibration: fc1cfa56096810a102afbafded63bddea0d913e1 - React-rendererconsistency: 42dd1fcba7db48b037d4bc73aa35cc019aac8b46 - React-renderercss: c4816d071cfe94a3ec8019e5b22f5011996e6bb2 - React-rendererdebug: c7168e8df828345312e8e6f3652af374aeb24308 - React-RuntimeApple: bb726702468e6a239a519a865c797baf27550d7d - React-RuntimeCore: 4ea41c2645827e63644b9d6d8ebd641c3bc2a2ae - React-runtimeexecutor: 19d34d09a72642532e8bb59dff00286a370ebf02 - React-RuntimeHermes: 0c304812412bf3befd665720cd5ce323d75979ea - React-runtimescheduler: 3d40986e34d1e3c456678595c6c4cbbf814d229d - React-timing: 6d2fa784270357f0d1b0f32c6e004b08119bbc8e - React-utils: 0c78fc776f32c9fc022e40c577e8ad4f5aa4ec03 - React-webperformancenativemodule: 4b7d3e9c6b7f660cb0228109bb8f541ca146081d - ReactAppDependencyProvider: 7a2c2347f5b6feb60f43b74a5722f6ae693d6337 + RCTRequired: 9bc921e90f5b02e3f3bf106df84b927e95471f03 + RCTSwiftUI: c2023f860a9b093ebda68c9df8497b517374462a + RCTSwiftUIWrapper: 2ca148ccd76d3fbe63da094728bcdffd12336972 + RCTTypeSafety: 4924aaa7912d199f3fa4bb9bbee4f26a2dfc96b3 + React: 7054ff39ebe86a21e6d16ce1599c4d6094a68894 + React-callinvoker: d82d01c0dec9a7cb2273f8280e8f0bf90faaf30a + React-Core: dd2f2ed34b913672376a195dea11d2c17bc0a948 + React-CoreModules: 828a736f9213a68ce93c889fb9ee4ff719642783 + React-cxxreact: f76df40ffabe95efcbd702fcc7689146cca4d487 + React-debug: 074e9fa46bec28192581228edd4af0b6d95d7c29 + React-defaultsnativemodule: d2a8b4d764cd4e69a0f3a43421ee0da856399f64 + React-domnativemodule: d80409864e28f8f6a88f4aeead4b50723edc713d + React-Fabric: 0e2a1e5e5a15f3b3a0aec7053aa6319e0aa6f699 + React-FabricComponents: 46031f518015a775e172403ea76bd589be15693c + React-FabricImage: 0e9200ee8367609a8d9c423963da91ce03eeba47 + React-featureflags: df7272a81deef82b8742df5ced279b6d7a5f841c + React-featureflagsnativemodule: 08941df9e00b0be618f53d7359998a5b16cdc490 + React-graphics: 4a193cd8ae505401fc94c09797059981219e3131 + React-hermes: 4a42c67299bbd855affe58d78c950d9a6cac51b4 + React-idlecallbacksnativemodule: c617f1d399ef04aff4671114a8a3e4639d42c30b + React-ImageManager: efc6eefce8ce5d2e01e5c7b56090ef7f7327865e + React-jserrorhandler: 0f880148834c4460d8b5f330b1fac38888e43a7f + React-jsi: dd6d1f095d6df55246a704dd40dc6c8abb79fe4e + React-jsiexecutor: 0d03c48b829c83a16806399e131867934ecafe75 + React-jsinspector: f9a489c656e0fed33e04199b864bea8a442ec183 + React-jsinspectorcdp: 2f8408030f617db5f55919ed31c0013fb3d073a5 + React-jsinspectornetwork: b4f8203b80cc3df0f35ad508980683c737b63ffb + React-jsinspectortracing: 51cc1235b9085f60f694385f46dba00dd0a0a174 + React-jsitooling: 76b18c76954f61e6a8b8f253d87a54d70aebfebb + React-jsitracing: bc141b7bb124af0dd32d840dc9e6079317e33f0d + React-logger: be01cd33b95a74a96575ad700b2983320a0aabaa + React-Mapbuffer: f8b3849fd46f27ed61431684517ee0445ab3a271 + React-microtasksnativemodule: ca36f4b088536daadfd7ff45d103689475bc1590 + React-NativeModulesApple: 7aeffa52fc63936cdcd47b37e32312d06f64d643 + React-networking: 31c69cfdc63ee6672c1db222bc9eb0743db65dab + React-oscompat: 13accd043265a7b72f77b5ee7089da15c91ae446 + React-perflogger: d337f5bd87cae70cd17a8580d58cb8de601c5e2f + React-performancecdpmetrics: 930da4a993e983432df2f2cefa2d77a0fa1edb67 + React-performancetimeline: 71d424eb55e0310839532b5d63984feb89c489d1 + React-RCTActionSheet: 2e28e75ed5df57344ac49f92b7e292a997e1d9cd + React-RCTAnimation: 9d778653126edb2fed4b8d242445ebe1686ee0a7 + React-RCTAppDelegate: 214cf98a4b0b2141030dc54b2e33e503e8ba11b1 + React-RCTBlob: b304a401448dc0919551225a5e1867a1200bcaaf + React-RCTFabric: 875f1e6caa17b8ccc3b00ba866ebba85e942d0e8 + React-RCTFBReactNativeSpec: 1a224bf57201e59dee61030038c456236f9f32a4 + React-RCTImage: c363ad32c0f9ac14dc6465c6da5403416ec73803 + React-RCTLinking: 8bb3ff00a166d5a92108485a2bf6cf9d5f484f01 + React-RCTNetwork: 5d205350c6b76dc19ac6bb9d18d408f02fcdfc41 + React-RCTPushNotification: c8a35a560a4da5bbb377aa64270b21bb8cbb06d4 + React-RCTRuntime: 45240974d22227ee9c71c20eae4a925adb9a8e41 + React-RCTSettings: 6af32d19618975d7074071e68e6615cf3b9d9a48 + React-RCTTest: 8a53821ae0efce1dbaf48caf1a9ae0d2611b75f0 + React-RCTText: b7bedfd3442ccd44606b2caf5070abcdc93487b4 + React-RCTVibration: 0103eb5fee41efb1d012da8669a8e5aede866d6a + React-rendererconsistency: adef082598255d364bb10f0b6027e99f2b338497 + React-renderercss: e576314456107abe6b594e12f91c14ea56f75401 + React-rendererdebug: b2e78d2540692b719fbc762081f5144c194cbb80 + React-RuntimeApple: 10b3fa189546d6a93e7f21514bddab421f35b586 + React-RuntimeCore: e31a54e3225c683bd481701ed551f875066fb0d5 + React-runtimeexecutor: d4a1387dcb29a76a8bc831b00501ebf3e63c9bfe + React-RuntimeHermes: e7a2a22245a136bd3e928d2e62325c851ad2b3a2 + React-runtimescheduler: 0baaa4db55ee4545db2931d85a7dcca3a72bd83a + React-timing: 4da5189ef7698e15bb2eacd53a87a3a818dd54f4 + React-utils: 0505cb53173381eafba5d35bcb6577e705ee1698 + React-webperformancenativemodule: 734ded4454a76895cdb64060c8db8c490ce42856 + ReactAppDependencyProvider: 8f1631dc4f52b1ddcac0c13909d2058a619bfc6c ReactCodegen: 5a2d9dbe44f2b16e06cbe68d2215d71776ae5c8b - ReactCommon: 7e20139af0efdfceb93a2e9547895c1fa6fd0aa0 - ReactCommon-Samples: 6dc6a7aa090c88293f966b815864685422e6a371 + ReactCommon: fc574ad798b04347eab084ad04fa90e5a6ac1919 + ReactCommon-Samples: 79ff017d47cd969d38b13f7b0bfeaaab29fe733c ScreenshotManager: 370045f403c555760ae26d85a01dda89d257fa7b SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: d9219eff95362e6c29a95c0583069b6470d4f607 + Yoga: c6951b2c802b854c0f8a76827e5ad61e6642f5dd PODFILE CHECKSUM: 995beda3236c2c76801e7a4efc7fedcd390220e6 From 640e672ae699f4a71d0088c867553c85f88205bf Mon Sep 17 00:00:00 2001 From: artus9033 Date: Tue, 23 Sep 2025 11:43:49 +0200 Subject: [PATCH 17/34] chore: revert changes to Podfile.lock --- packages/rn-tester/Podfile.lock | 266 +++++++++++++------------------- 1 file changed, 104 insertions(+), 162 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 1c473efc26abc7..5addd20bc01b9f 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -500,7 +500,6 @@ PODS: - RCT-Folly/Fabric - RCTTypeSafety (= 1000.0.0) - React-Core/CoreModulesHeaders (= 1000.0.0) - - React-debug - React-jsi (= 1000.0.0) - React-jsinspector - React-jsinspectorcdp @@ -543,14 +542,12 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - React-domnativemodule - - React-featureflags - React-featureflagsnativemodule - React-idlecallbacksnativemodule - React-jsi - React-jsiexecutor - React-microtasksnativemodule - React-RCTFBReactNativeSpec - - React-webperformancenativemodule - SocketRocket - React-domnativemodule (1000.0.0): - boost @@ -582,6 +579,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -624,6 +622,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -649,6 +648,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -674,6 +674,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -699,6 +700,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -724,6 +726,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -749,6 +752,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -778,6 +782,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -803,6 +808,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -828,6 +834,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -853,6 +860,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -880,6 +888,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -905,6 +914,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -930,6 +940,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -955,6 +966,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -980,6 +992,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1005,6 +1018,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1030,6 +1044,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1056,6 +1071,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1081,6 +1097,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1109,6 +1126,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1134,6 +1152,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1159,6 +1178,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1186,6 +1206,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTRequired + - RCTSwiftUIWrapper - RCTTypeSafety - React-Core - React-cxxreact @@ -1252,7 +1273,6 @@ PODS: - React-FabricComponents/components/rncore (= 1000.0.0) - React-FabricComponents/components/safeareaview (= 1000.0.0) - React-FabricComponents/components/scrollview (= 1000.0.0) - - React-FabricComponents/components/switch (= 1000.0.0) - React-FabricComponents/components/text (= 1000.0.0) - React-FabricComponents/components/textinput (= 1000.0.0) - React-FabricComponents/components/unimplementedview (= 1000.0.0) @@ -1432,33 +1452,6 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/switch (1000.0.0): - - boost - - DoubleConversion - - fast_float - - fmt - - glog - - hermes-engine - - RCT-Folly - - RCT-Folly/Fabric - - RCTRequired - - RCTTypeSafety - - React-Core - - React-cxxreact - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-logger - - React-RCTFBReactNativeSpec - - React-rendererdebug - - React-runtimescheduler - - React-utils - - ReactCommon/turbomodule/core - - SocketRocket - - Yoga - React-FabricComponents/components/text (1000.0.0): - boost - DoubleConversion @@ -1696,7 +1689,6 @@ PODS: - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - - React-oscompat - React-perflogger (= 1000.0.0) - React-runtimeexecutor - SocketRocket @@ -1765,13 +1757,12 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - React-cxxreact - - React-debug - - React-jsi + - React-cxxreact (= 1000.0.0) + - React-jsi (= 1000.0.0) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - - React-perflogger + - React-perflogger (= 1000.0.0) - React-runtimeexecutor - SocketRocket - React-jsinspector (1000.0.0): @@ -1788,7 +1779,6 @@ PODS: - React-jsinspectorcdp - React-jsinspectornetwork - React-jsinspectortracing - - React-oscompat - React-perflogger (= 1000.0.0) - React-runtimeexecutor - SocketRocket @@ -1809,7 +1799,10 @@ PODS: - glog - RCT-Folly - RCT-Folly/Fabric + - React-featureflags - React-jsinspectorcdp + - React-performancetimeline + - React-timing - SocketRocket - React-jsinspectortracing (1000.0.0): - boost @@ -1819,7 +1812,6 @@ PODS: - glog - RCT-Folly - RCT-Folly/Fabric - - React-jsinspectornetwork - React-oscompat - React-timing - SocketRocket @@ -1832,7 +1824,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - React-cxxreact (= 1000.0.0) - - React-debug - React-jsi (= 1000.0.0) - React-jsinspector - React-jsinspectorcdp @@ -1886,7 +1877,6 @@ PODS: - React-callinvoker - React-Core - React-cxxreact - - React-debug - React-featureflags - React-jsi - React-jsinspector @@ -1895,20 +1885,6 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - SocketRocket - - React-networking (1000.0.0): - - boost - - DoubleConversion - - fast_float - - fmt - - glog - - RCT-Folly - - RCT-Folly/Fabric - - React-featureflags - - React-jsinspectornetwork - - React-jsinspectortracing - - React-performancetimeline - - React-timing - - SocketRocket - React-oscompat (1000.0.0) - React-perflogger (1000.0.0): - boost @@ -1925,7 +1901,6 @@ PODS: - fast_float - fmt - glog - - hermes-engine - RCT-Folly - RCT-Folly/Fabric - React-jsi @@ -2026,7 +2001,6 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - RCTSwiftUIWrapper - React-Core - React-debug - React-Fabric @@ -2038,9 +2012,8 @@ PODS: - React-jsi - React-jsinspector - React-jsinspectorcdp + - React-jsinspectornetwork - React-jsinspectortracing - - React-networking - - React-performancecdpmetrics - React-performancetimeline - React-RCTAnimation - React-RCTFBReactNativeSpec @@ -2127,13 +2100,11 @@ PODS: - RCT-Folly/Fabric - RCTTypeSafety - React-Core/RCTNetworkHeaders - - React-debug - React-featureflags - React-jsi - React-jsinspectorcdp - React-jsinspectornetwork - React-NativeModulesApple - - React-networking - React-RCTFBReactNativeSpec - ReactCommon - SocketRocket @@ -2154,7 +2125,6 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - React-Core - - React-debug - React-jsi - React-jsinspector - React-jsinspectorcdp @@ -2331,8 +2301,7 @@ PODS: - React-timing - React-utils - SocketRocket - - React-timing (1000.0.0): - - React-debug + - React-timing (1000.0.0) - React-utils (1000.0.0): - boost - DoubleConversion @@ -2345,23 +2314,6 @@ PODS: - React-debug - React-jsi (= 1000.0.0) - SocketRocket - - React-webperformancenativemodule (1000.0.0): - - boost - - DoubleConversion - - fast_float - - fmt - - glog - - hermes-engine - - RCT-Folly - - RCT-Folly/Fabric - - React-cxxreact - - React-jsi - - React-jsiexecutor - - React-performancetimeline - - React-RCTFBReactNativeSpec - - React-runtimeexecutor - - ReactCommon/turbomodule/core - - SocketRocket - ReactAppDependencyProvider (1000.0.0): - ReactCodegen - ReactCodegen (1000.0.0): @@ -2545,7 +2497,6 @@ DEPENDENCIES: - React-Mapbuffer (from `../react-native/ReactCommon`) - React-microtasksnativemodule (from `../react-native/ReactCommon/react/nativemodule/microtasks`) - React-NativeModulesApple (from `../react-native/ReactCommon/react/nativemodule/core/platform/ios`) - - React-networking (from `../react-native/ReactCommon/react/networking`) - React-oscompat (from `../react-native/ReactCommon/oscompat`) - React-perflogger (from `../react-native/ReactCommon/reactperflogger`) - React-performancecdpmetrics (from `../react-native/ReactCommon/react/performance/cdpmetrics`) @@ -2575,9 +2526,8 @@ DEPENDENCIES: - React-runtimescheduler (from `../react-native/ReactCommon/react/renderer/runtimescheduler`) - React-timing (from `../react-native/ReactCommon/react/timing`) - React-utils (from `../react-native/ReactCommon/react/utils`) - - React-webperformancenativemodule (from `../react-native/ReactCommon/react/nativemodule/webperformance`) - - ReactAppDependencyProvider (from `build/generated/ios/ReactAppDependencyProvider`) - - ReactCodegen (from `build/generated/ios/ReactCodegen`) + - ReactAppDependencyProvider (from `build/generated/ios`) + - ReactCodegen (from `build/generated/ios`) - ReactCommon-Samples (from `../react-native/ReactCommon/react/nativemodule/samples`) - ReactCommon/turbomodule/core (from `../react-native/ReactCommon`) - ScreenshotManager (from `NativeModuleExample`) @@ -2681,8 +2631,6 @@ EXTERNAL SOURCES: :path: "../react-native/ReactCommon/react/nativemodule/microtasks" React-NativeModulesApple: :path: "../react-native/ReactCommon/react/nativemodule/core/platform/ios" - React-networking: - :path: "../react-native/ReactCommon/react/networking" React-oscompat: :path: "../react-native/ReactCommon/oscompat" React-perflogger: @@ -2741,12 +2689,10 @@ EXTERNAL SOURCES: :path: "../react-native/ReactCommon/react/timing" React-utils: :path: "../react-native/ReactCommon/react/utils" - React-webperformancenativemodule: - :path: "../react-native/ReactCommon/react/nativemodule/webperformance" ReactAppDependencyProvider: - :path: build/generated/ios/ReactAppDependencyProvider + :path: build/generated/ios ReactCodegen: - :path: build/generated/ios/ReactCodegen + :path: build/generated/ios ReactCommon: :path: "../react-native/ReactCommon" ReactCommon-Samples: @@ -2760,87 +2706,83 @@ SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 - FBLazyVector: e3bc9b7cc6cc9d727a2385d12d2c58b6e545e22b + FBLazyVector: d3c2dd739a63c1a124e775df075dc7c517a719cb fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 - hermes-engine: b18262a626b43561b2fdb63766417735dedf9731 + hermes-engine: 5a9adf9081befbac6b81bc0c81522430a7eb7da1 MyNativeView: 26b517931cc8bfc7b602c410572b323348185461 NativeCxxModuleExample: 6a9788a749d522f8b6cc55a56f4760a670e4e2eb OCMock: 589f2c84dacb1f5aaf6e4cec1f292551fe748e74 RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 RCTDeprecation: 3808e36294137f9ee5668f4df2e73dc079cd1dcf - RCTRequired: 9bc921e90f5b02e3f3bf106df84b927e95471f03 - RCTSwiftUI: c2023f860a9b093ebda68c9df8497b517374462a - RCTSwiftUIWrapper: 2ca148ccd76d3fbe63da094728bcdffd12336972 - RCTTypeSafety: 4924aaa7912d199f3fa4bb9bbee4f26a2dfc96b3 - React: 7054ff39ebe86a21e6d16ce1599c4d6094a68894 - React-callinvoker: d82d01c0dec9a7cb2273f8280e8f0bf90faaf30a - React-Core: dd2f2ed34b913672376a195dea11d2c17bc0a948 - React-CoreModules: 828a736f9213a68ce93c889fb9ee4ff719642783 - React-cxxreact: f76df40ffabe95efcbd702fcc7689146cca4d487 - React-debug: 074e9fa46bec28192581228edd4af0b6d95d7c29 - React-defaultsnativemodule: d2a8b4d764cd4e69a0f3a43421ee0da856399f64 - React-domnativemodule: d80409864e28f8f6a88f4aeead4b50723edc713d - React-Fabric: 0e2a1e5e5a15f3b3a0aec7053aa6319e0aa6f699 - React-FabricComponents: 46031f518015a775e172403ea76bd589be15693c - React-FabricImage: 0e9200ee8367609a8d9c423963da91ce03eeba47 - React-featureflags: df7272a81deef82b8742df5ced279b6d7a5f841c - React-featureflagsnativemodule: 08941df9e00b0be618f53d7359998a5b16cdc490 - React-graphics: 4a193cd8ae505401fc94c09797059981219e3131 - React-hermes: 4a42c67299bbd855affe58d78c950d9a6cac51b4 - React-idlecallbacksnativemodule: c617f1d399ef04aff4671114a8a3e4639d42c30b - React-ImageManager: efc6eefce8ce5d2e01e5c7b56090ef7f7327865e - React-jserrorhandler: 0f880148834c4460d8b5f330b1fac38888e43a7f - React-jsi: dd6d1f095d6df55246a704dd40dc6c8abb79fe4e - React-jsiexecutor: 0d03c48b829c83a16806399e131867934ecafe75 - React-jsinspector: f9a489c656e0fed33e04199b864bea8a442ec183 - React-jsinspectorcdp: 2f8408030f617db5f55919ed31c0013fb3d073a5 - React-jsinspectornetwork: b4f8203b80cc3df0f35ad508980683c737b63ffb - React-jsinspectortracing: 51cc1235b9085f60f694385f46dba00dd0a0a174 - React-jsitooling: 76b18c76954f61e6a8b8f253d87a54d70aebfebb - React-jsitracing: bc141b7bb124af0dd32d840dc9e6079317e33f0d - React-logger: be01cd33b95a74a96575ad700b2983320a0aabaa - React-Mapbuffer: f8b3849fd46f27ed61431684517ee0445ab3a271 - React-microtasksnativemodule: ca36f4b088536daadfd7ff45d103689475bc1590 - React-NativeModulesApple: 7aeffa52fc63936cdcd47b37e32312d06f64d643 - React-networking: 31c69cfdc63ee6672c1db222bc9eb0743db65dab - React-oscompat: 13accd043265a7b72f77b5ee7089da15c91ae446 - React-perflogger: d337f5bd87cae70cd17a8580d58cb8de601c5e2f - React-performancecdpmetrics: 930da4a993e983432df2f2cefa2d77a0fa1edb67 - React-performancetimeline: 71d424eb55e0310839532b5d63984feb89c489d1 - React-RCTActionSheet: 2e28e75ed5df57344ac49f92b7e292a997e1d9cd - React-RCTAnimation: 9d778653126edb2fed4b8d242445ebe1686ee0a7 - React-RCTAppDelegate: 214cf98a4b0b2141030dc54b2e33e503e8ba11b1 - React-RCTBlob: b304a401448dc0919551225a5e1867a1200bcaaf - React-RCTFabric: 875f1e6caa17b8ccc3b00ba866ebba85e942d0e8 - React-RCTFBReactNativeSpec: 1a224bf57201e59dee61030038c456236f9f32a4 - React-RCTImage: c363ad32c0f9ac14dc6465c6da5403416ec73803 - React-RCTLinking: 8bb3ff00a166d5a92108485a2bf6cf9d5f484f01 - React-RCTNetwork: 5d205350c6b76dc19ac6bb9d18d408f02fcdfc41 - React-RCTPushNotification: c8a35a560a4da5bbb377aa64270b21bb8cbb06d4 - React-RCTRuntime: 45240974d22227ee9c71c20eae4a925adb9a8e41 - React-RCTSettings: 6af32d19618975d7074071e68e6615cf3b9d9a48 - React-RCTTest: 8a53821ae0efce1dbaf48caf1a9ae0d2611b75f0 - React-RCTText: b7bedfd3442ccd44606b2caf5070abcdc93487b4 - React-RCTVibration: 0103eb5fee41efb1d012da8669a8e5aede866d6a - React-rendererconsistency: adef082598255d364bb10f0b6027e99f2b338497 - React-renderercss: e576314456107abe6b594e12f91c14ea56f75401 - React-rendererdebug: b2e78d2540692b719fbc762081f5144c194cbb80 - React-RuntimeApple: 10b3fa189546d6a93e7f21514bddab421f35b586 - React-RuntimeCore: e31a54e3225c683bd481701ed551f875066fb0d5 - React-runtimeexecutor: d4a1387dcb29a76a8bc831b00501ebf3e63c9bfe - React-RuntimeHermes: e7a2a22245a136bd3e928d2e62325c851ad2b3a2 - React-runtimescheduler: 0baaa4db55ee4545db2931d85a7dcca3a72bd83a - React-timing: 4da5189ef7698e15bb2eacd53a87a3a818dd54f4 - React-utils: 0505cb53173381eafba5d35bcb6577e705ee1698 - React-webperformancenativemodule: 734ded4454a76895cdb64060c8db8c490ce42856 - ReactAppDependencyProvider: 8f1631dc4f52b1ddcac0c13909d2058a619bfc6c - ReactCodegen: 5a2d9dbe44f2b16e06cbe68d2215d71776ae5c8b - ReactCommon: fc574ad798b04347eab084ad04fa90e5a6ac1919 - ReactCommon-Samples: 79ff017d47cd969d38b13f7b0bfeaaab29fe733c + RCTRequired: a00614e2da5344c2cda3d287050b6cee00e21dc6 + RCTTypeSafety: 459a16418c6b413060d35434ba3e83f5b0bd2651 + React: 170a01a19ba2525ab7f11243e2df6b19bf268093 + React-callinvoker: f08f425e4043cd1998a158b6e39a6aed1fd1d718 + React-Core: d35c5cf69898fd026e5cd93a0454b1d42e999d3e + React-CoreModules: 3ce1d43f6cc37f43759ec543ce1c0010080f1de1 + React-cxxreact: 52ea845cf7eb1e0fb201ed36e2192de6522a1f60 + React-debug: 195df38487d3f48a7af04deddeb4a5c6d4440416 + React-defaultsnativemodule: 8afea5a4bd07addb523bf48489b8a684ea1bdff0 + React-domnativemodule: 00a3d08568b4e573dcc21ecec829ed425ab10763 + React-Fabric: e2ee903224e68c8fa24aa96e217bad36d7660f5a + React-FabricComponents: 82043c131381c8b1f6e91c559eb04cdf61decdb7 + React-FabricImage: 264c9ce5241e43e25b94c8de55ac6c3c8a046472 + React-featureflags: 595651ea13c63a9f77f06d9a1973b665b4a28b7e + React-featureflagsnativemodule: 06823479a2ee210cfa0e9c19447c2722a8d995f2 + React-graphics: 1f99b9b5515eac389f0cf9c85b03abc366d6a933 + React-hermes: f1034a4d5d8edaf78d47a4f21e9898c4bf6fe02f + React-idlecallbacksnativemodule: 4e65f183318b8a0fbabc481a4eafc0f0d62d1cbf + React-ImageManager: a6833445e17879933378b7c0ba45ee42115c14bc + React-jserrorhandler: bec134a192c50338193544404d45df24fb8a19ca + React-jsi: 4ad77650fb0ca4229569eb2532db7a87e3d12662 + React-jsiexecutor: fa5b80bdbe1ceffc33a892da20fc07b4dfa4df7a + React-jsinspector: 10b5dc4eef2a3d05b80be2114ed676496c5bf59c + React-jsinspectorcdp: 5fb266e5f23d3a2819ba848e9d4d0b6b00f95934 + React-jsinspectornetwork: 1655a81f3fe14789df41e063bd56dd130cc3562a + React-jsinspectortracing: 5b0be488e06958a572e1badfe8509929ae1cc83b + React-jsitooling: 9e563b89f94cf4baf872fe47105d60ae83f4ce4d + React-jsitracing: ce443686f52538d1033ce7db1e7d643e866262f0 + React-logger: 116c3ae5a9906671d157aa00882a5ee75a5a7ebc + React-Mapbuffer: fc937cfa41140d7724c559c3d16c50dd725361c8 + React-microtasksnativemodule: 09899c7389250279bdcc5384f0281bb069979855 + React-NativeModulesApple: d05b718ccd8b68c184e76dbc1efb63385197595b + React-oscompat: 7133e0e945cda067ae36b22502df663d73002864 + React-perflogger: ada3cdf3dfc8b7cd1fabe3c91b672e23981611ab + React-performancecdpmetrics: 89ea4585d30c7681ab1378afb3fd845cd0647860 + React-performancetimeline: e7d5849d89ee39557dcd56dfb6e7b0d49003d925 + React-RCTActionSheet: 1bf8cc8086ad1c15da3407dfb7bc9dd94dc7595d + React-RCTAnimation: 263593e66c89bf810604b1ace15dfa382a1ca2df + React-RCTAppDelegate: f66939ac7ce5da6eb839c3d84a7098e62498a791 + React-RCTBlob: 7b76230c53fe87d305eeeb250b0aae031bb6cbae + React-RCTFabric: 2fd2ef899c7219fd39fd61c39750510f88a81434 + React-RCTFBReactNativeSpec: bd9c8093cc3388fe55a8cce47e66712e326e967a + React-RCTImage: 3e28f3015bc7e8375298e01ebb2032aa05635c32 + React-RCTLinking: 06742cfad41c506091403a414370743a4ed75af3 + React-RCTNetwork: b4577eec0092c16d8996e415e4cac7a372d6d362 + React-RCTPushNotification: ea11178d499696516e0ff9ae335edbe99b06f94b + React-RCTRuntime: 925039e78fc530e0421c308ccc607f214f3c7be1 + React-RCTSettings: d3c2dd305ec81f7faf42762ec598d57f07fd43be + React-RCTTest: 2db46eda60bc2228cb67622a580e8e86b00088d9 + React-RCTText: e416825b80c530647040ef91d23ffd35ccc87981 + React-RCTVibration: 1837a27fc16eeffc9509779c3334fde54c012bcc + React-rendererconsistency: 777c894edc43dde01499189917ac54ee76ae6a6a + React-renderercss: a9cb6ba7f49a80dc4b4f7008bae1590d12f27049 + React-rendererdebug: fea8bde927403a198742b2d940a5f1cd8230c0b4 + React-RuntimeApple: 6a0c164a8855edb4987b90da2d4d8601302de72d + React-RuntimeCore: 6dec37113b759b76641bd028bfbbbec8cf923356 + React-runtimeexecutor: f6ad01d321a3b99e772509b4d6f5c25b670103fa + React-RuntimeHermes: d4f661204d3061219a63951eb4efed4dcaf3f12f + React-runtimescheduler: ae44fe8b4170a9d59f62e8b7d7b060c179db739d + React-timing: 9d49179631e5e3c759e6e82d4c613c73da80a144 + React-utils: 0944df8d553d66b27f486282c42a84a969fd2f6c + ReactAppDependencyProvider: 68f2d2cefd6c9b9f2865246be2bfe86ebd49238d + ReactCodegen: ff8d79aa6b195efceb75a7cd3cafa9f05d1cbfe0 + ReactCommon: a53973ab35d399560ace331ec9e2b26db0592cec + ReactCommon-Samples: dcc128cbf51ac38d2578791750d0a046d1b8a5e9 ScreenshotManager: 370045f403c555760ae26d85a01dda89d257fa7b SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: c6951b2c802b854c0f8a76827e5ad61e6642f5dd + Yoga: 59290f2ce3fc5c34797a21244288cad99b357b63 PODFILE CHECKSUM: 995beda3236c2c76801e7a4efc7fedcd390220e6 From a400089d94d4d35c11406065703d937d89004497 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Tue, 23 Sep 2025 12:15:46 +0200 Subject: [PATCH 18/34] fix: use ES exports in IntegrationTests sources, properly destructure the default export in IntegrationTestsApp --- packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js | 2 +- packages/rn-tester/IntegrationTests/AppEventsTest.js | 2 +- .../rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js | 2 +- packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js | 2 +- packages/rn-tester/IntegrationTests/ImageSnapshotTest.js | 2 +- .../rn-tester/IntegrationTests/IntegrationTestHarnessTest.js | 2 +- packages/rn-tester/IntegrationTests/IntegrationTestsApp.js | 2 +- packages/rn-tester/IntegrationTests/LayoutEventsTest.js | 2 +- packages/rn-tester/IntegrationTests/PromiseTest.js | 2 +- packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js | 2 +- packages/rn-tester/IntegrationTests/SyncMethodTest.js | 2 +- packages/rn-tester/IntegrationTests/TimersTest.js | 2 +- packages/rn-tester/IntegrationTests/WebSocketTest.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js b/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js index 759b71dc829c47..77dee3f06feb47 100644 --- a/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js +++ b/packages/rn-tester/IntegrationTests/AccessibilityManagerTest.js @@ -56,4 +56,4 @@ function AccessibilityManagerTest(): React.Node { return ; } -module.exports = AccessibilityManagerTest; +export default AccessibilityManagerTest; diff --git a/packages/rn-tester/IntegrationTests/AppEventsTest.js b/packages/rn-tester/IntegrationTests/AppEventsTest.js index 56db42de5fbc3b..d96eb5da0a326a 100644 --- a/packages/rn-tester/IntegrationTests/AppEventsTest.js +++ b/packages/rn-tester/IntegrationTests/AppEventsTest.js @@ -83,4 +83,4 @@ const styles = StyleSheet.create({ }, }); -module.exports = AppEventsTest; +export default AppEventsTest; diff --git a/packages/rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js b/packages/rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js index 9a1c99acc25681..18ed0206810480 100644 --- a/packages/rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js +++ b/packages/rn-tester/IntegrationTests/GlobalEvalWithSourceUrlTest.js @@ -80,4 +80,4 @@ function GlobalEvalWithSourceUrlTest(): React.Node { return ; } -module.exports = GlobalEvalWithSourceUrlTest; +export default GlobalEvalWithSourceUrlTest; diff --git a/packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js b/packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js index 5c3cd66dbeeadf..e26a4212382b40 100644 --- a/packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js +++ b/packages/rn-tester/IntegrationTests/ImageCachePolicyTest.js @@ -105,4 +105,4 @@ const styles = StyleSheet.create({ }, }); -module.exports = ImageCachePolicyTest; +export default ImageCachePolicyTest; diff --git a/packages/rn-tester/IntegrationTests/ImageSnapshotTest.js b/packages/rn-tester/IntegrationTests/ImageSnapshotTest.js index b4b86d4034edd2..e25bc8f1e92b9e 100644 --- a/packages/rn-tester/IntegrationTests/ImageSnapshotTest.js +++ b/packages/rn-tester/IntegrationTests/ImageSnapshotTest.js @@ -36,4 +36,4 @@ function ImageSnapshotTest(): React.Node { ); } -module.exports = ImageSnapshotTest; +export default ImageSnapshotTest; diff --git a/packages/rn-tester/IntegrationTests/IntegrationTestHarnessTest.js b/packages/rn-tester/IntegrationTests/IntegrationTestHarnessTest.js index 4b7e23879d74f2..831b640ddfaa08 100644 --- a/packages/rn-tester/IntegrationTests/IntegrationTestHarnessTest.js +++ b/packages/rn-tester/IntegrationTests/IntegrationTestHarnessTest.js @@ -62,4 +62,4 @@ const styles = StyleSheet.create({ }, }); -module.exports = IntegrationTestHarnessTest; +export default IntegrationTestHarnessTest; diff --git a/packages/rn-tester/IntegrationTests/IntegrationTestsApp.js b/packages/rn-tester/IntegrationTests/IntegrationTestsApp.js index fe8443182c4502..cb2b54dd23be3e 100644 --- a/packages/rn-tester/IntegrationTests/IntegrationTestsApp.js +++ b/packages/rn-tester/IntegrationTests/IntegrationTestsApp.js @@ -31,7 +31,7 @@ const TESTS = [ require('./WebSocketTest'), require('./AccessibilityManagerTest'), require('./GlobalEvalWithSourceUrlTest'), -]; +].map(mod => mod.default); TESTS.forEach(test => AppRegistry.registerComponent( diff --git a/packages/rn-tester/IntegrationTests/LayoutEventsTest.js b/packages/rn-tester/IntegrationTests/LayoutEventsTest.js index ed6796bb355b52..57eb5855c8c9f8 100644 --- a/packages/rn-tester/IntegrationTests/LayoutEventsTest.js +++ b/packages/rn-tester/IntegrationTests/LayoutEventsTest.js @@ -201,4 +201,4 @@ const styles = StyleSheet.create({ }); LayoutEventsTest.displayName = 'LayoutEventsTest'; -module.exports = LayoutEventsTest; +export default LayoutEventsTest; diff --git a/packages/rn-tester/IntegrationTests/PromiseTest.js b/packages/rn-tester/IntegrationTests/PromiseTest.js index 4d1eb27571c480..2efd6fe50f36a7 100644 --- a/packages/rn-tester/IntegrationTests/PromiseTest.js +++ b/packages/rn-tester/IntegrationTests/PromiseTest.js @@ -83,4 +83,4 @@ function PromiseTest(): React.Node { return ; } -module.exports = PromiseTest; +export default PromiseTest; diff --git a/packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js b/packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js index ed1ab9d848dca7..72ba40aba53e72 100644 --- a/packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js +++ b/packages/rn-tester/IntegrationTests/SimpleSnapshotTest.js @@ -54,4 +54,4 @@ const styles = StyleSheet.create({ }, }); -module.exports = SimpleSnapshotTest; +export default SimpleSnapshotTest; diff --git a/packages/rn-tester/IntegrationTests/SyncMethodTest.js b/packages/rn-tester/IntegrationTests/SyncMethodTest.js index 8ba3ffa976f397..a0f99c2dd115d0 100644 --- a/packages/rn-tester/IntegrationTests/SyncMethodTest.js +++ b/packages/rn-tester/IntegrationTests/SyncMethodTest.js @@ -46,4 +46,4 @@ function SyncMethodTest(): React.Node { return ; } -module.exports = SyncMethodTest; +export default SyncMethodTest; diff --git a/packages/rn-tester/IntegrationTests/TimersTest.js b/packages/rn-tester/IntegrationTests/TimersTest.js index 7040a3fe6abbdc..c7c055cb601cbe 100644 --- a/packages/rn-tester/IntegrationTests/TimersTest.js +++ b/packages/rn-tester/IntegrationTests/TimersTest.js @@ -283,4 +283,4 @@ const styles = StyleSheet.create({ }); TimersTest.displayName = 'TimersTest'; -module.exports = TimersTest; +export default TimersTest; diff --git a/packages/rn-tester/IntegrationTests/WebSocketTest.js b/packages/rn-tester/IntegrationTests/WebSocketTest.js index 1198e8b0e65710..944d32642fa53c 100644 --- a/packages/rn-tester/IntegrationTests/WebSocketTest.js +++ b/packages/rn-tester/IntegrationTests/WebSocketTest.js @@ -151,4 +151,4 @@ class WebSocketTest extends React.Component<{...}, State> { WebSocketTest.displayName = 'WebSocketTest'; -module.exports = WebSocketTest; +export default WebSocketTest; From a1ae130d72b27ceda55ee6cee2f533020b1a7cb9 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 10:49:53 +0200 Subject: [PATCH 19/34] ci: run iOS unit & integration tests on CI --- .github/actions/test-ios-rntester/action.yml | 16 ++++++++-------- scripts/objc-test.sh | 3 --- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/actions/test-ios-rntester/action.yml b/.github/actions/test-ios-rntester/action.yml index b54e4a36c6e5c7..b6058a2ad9a408 100644 --- a/.github/actions/test-ios-rntester/action.yml +++ b/.github/actions/test-ios-rntester/action.yml @@ -7,9 +7,9 @@ inputs: ruby-version: description: The version of ruby that must be used default: 2.6.10 - run-unit-tests: - description: whether unit tests should run or not. - default: "false" + run-unit-integration-tests: + description: whether unit & integration tests should run or not. + default: "true" hermes-tarball-artifacts-dir: description: The directory where the hermes tarball artifacts are stored default: /tmp/hermes/hermes-runtime-darwin @@ -46,7 +46,7 @@ runs: with: ruby-version: ${{ inputs.ruby-version }} - name: Prepare IOS Tests - if: ${{ inputs.run-unit-tests == 'true' }} + if: ${{ inputs.run-unit-integration-tests == 'true' }} uses: ./.github/actions/prepare-ios-tests - name: Set HERMES_ENGINE_TARBALL_PATH envvar if Hermes tarball is present shell: bash @@ -134,12 +134,12 @@ runs: echo "App found at $APP_PATH" echo "app-path=$APP_PATH" >> $GITHUB_ENV - name: "Run Tests: iOS Unit and Integration Tests" - if: ${{ inputs.run-unit-tests == 'true' }} + if: ${{ inputs.run-unit-integration-tests == 'true' }} shell: bash run: yarn test-ios - name: Zip Derived data folder - if: ${{ inputs.run-unit-tests == 'true' }} + if: ${{ inputs.run-unit-integration-tests == 'true' }} shell: bash run: | echo "zipping tests results" @@ -148,7 +148,7 @@ runs: tar -zcvf xcresults.tar.gz $XCRESULT_PATH - name: Upload artifact uses: actions/upload-artifact@v4.3.4 - if: ${{ inputs.run-unit-tests == 'true' }} + if: ${{ inputs.run-unit-integration-tests == 'true' }} with: name: xcresults path: /Users/distiller/Library/Developer/Xcode/xcresults.tar.gz @@ -159,7 +159,7 @@ runs: name: RNTesterApp-NewArch-${{ inputs.flavor }} path: ${{ env.app-path }} - name: Store test results - if: ${{ inputs.run-unit-tests == 'true' }} + if: ${{ inputs.run-unit-integration-tests == 'true' }} uses: actions/upload-artifact@v4.3.4 with: name: test-results diff --git a/scripts/objc-test.sh b/scripts/objc-test.sh index 207f71dc0bb6e4..6bf0db17aa072f 100755 --- a/scripts/objc-test.sh +++ b/scripts/objc-test.sh @@ -15,9 +15,6 @@ SCRIPTS=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) ROOT=$(dirname "$SCRIPTS") SKIPPED_TESTS=() -# TODO: T60408036 This test crashes iOS 13 for bad access, please investigate -# and re-enable. See https://gist.github.com/0xced/56035d2f57254cf518b5. -SKIPPED_TESTS+=("-skip-testing:RNTesterUnitTests/RCTJSONTests/testNotUTF8Convertible") # Create cleanup handler cleanup() { From 9888b70176b2249ae014a1bf83f11f22ba7f3ffa Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 11:51:02 +0200 Subject: [PATCH 20/34] fix(test): fix codegen_utils-test.rb using removed mock helper CodegenUtils.set_react_codegen_podspec_generated --- .../scripts/cocoapods/__tests__/codegen_utils-test.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb index 4571bacd7a3d4b..fe8c3c5dd93f2b 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb @@ -33,7 +33,6 @@ class CodegenUtilsTests < Test::Unit::TestCase def setup CodegenUtils.set_react_codegen_discovery_done(false) - CodegenUtils.set_react_codegen_podspec_generated(false) Pod::Config.reset() @base_path = "~/app/ios" Pathname.pwd!(@base_path) From dc24ea8a251b349e610bf208545542cfec5bad47 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 16:28:11 +0200 Subject: [PATCH 21/34] fix(test): bad indentation in ruby tests --- .../cocoapods/__tests__/test_utils/XcodeprojMock.rb | 2 +- packages/react-native/scripts/cocoapods/utils.rb | 8 ++++---- .../__tests__/script_phases-test.rb | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/__tests__/test_utils/XcodeprojMock.rb b/packages/react-native/scripts/cocoapods/__tests__/test_utils/XcodeprojMock.rb index 7737a1bba45a33..e29f20dedd4529 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/test_utils/XcodeprojMock.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/test_utils/XcodeprojMock.rb @@ -17,5 +17,5 @@ def self.write_to_path(hash, path) def self.reset() @@path_to_file_mapping.clear end - end + end end diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 4d4872768b7132..ef0de64762bc83 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -190,13 +190,13 @@ def self.add_build_settings_to_pod(installer, settings_name, settings_value, tar installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result| if pod_name.to_s == target_pod_name target_installation_result.native_target.build_configurations.each do |config| - if configuration_type == nil || (configuration_type != nil && config.type == configuration_type) - config.build_settings[settings_name] ||= '$(inherited) ' - config.build_settings[settings_name] << settings_value - end + if configuration_type == nil || (configuration_type != nil && config.type == configuration_type) + config.build_settings[settings_name] ||= '$(inherited) ' + config.build_settings[settings_name] << settings_value end end end + end end def self.fix_library_search_path(config) diff --git a/packages/react-native/scripts/react_native_pods_utils/__tests__/script_phases-test.rb b/packages/react-native/scripts/react_native_pods_utils/__tests__/script_phases-test.rb index a6f9c3e3028bc8..16790a1c2c918f 100644 --- a/packages/react-native/scripts/react_native_pods_utils/__tests__/script_phases-test.rb +++ b/packages/react-native/scripts/react_native_pods_utils/__tests__/script_phases-test.rb @@ -42,4 +42,4 @@ def test_get_script_phases_no_codegen_discovery() assert_equal(snap_get_script_phases_no_codegen_discovery, result) end - end +end From a8f615058f33029b943628d208640ccdc9497538 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 16:30:05 +0200 Subject: [PATCH 22/34] fix(test): ruby test - updated baselines in codegen_utils-test --- .../cocoapods/__tests__/codegen_utils-test.rb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb index fe8c3c5dd93f2b..431369846957f9 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb @@ -136,29 +136,33 @@ def testCleanUpCodegenFolder_whenFolderExists_deleteItAndSetCleanupDone codegen_dir = "build/generated/ios" codegen_path = "#{@base_path}/#{codegen_dir}" globs = [ - "/MyModuleSpecs/MyModule.h", - "#{codegen_path}/MyModuleSpecs/MyModule.mm", - "#{codegen_path}/react/components/MyComponent/ShadowNode.h", - "#{codegen_path}/react/components/MyComponent/ShadowNode.mm", + codegen_path ] rn_path = '../node_modules/react-native' DirMock.mocked_existing_dirs(codegen_path) DirMock.mocked_existing_globs(globs, "#{codegen_path}/*") + original_define_singleton_method = CodegenUtils.method(:assert_codegen_folder_is_empty) + CodegenUtils.define_singleton_method(:assert_codegen_folder_is_empty) do |*args, **kwargs| + # no-op + end + # Act CodegenUtils.clean_up_build_folder(rn_path, codegen_dir, dir_manager: DirMock, file_manager: FileMock) # Assert - assert_equal(DirMock.exist_invocation_params, [codegen_path, codegen_path]) - assert_equal(DirMock.glob_invocation, ["#{codegen_path}/*", "#{codegen_path}/*"]) + assert_equal(DirMock.exist_invocation_params, [codegen_path]) assert_equal(FileUtils::FileUtilsStorage.rmrf_invocation_count, 3) assert_equal(FileUtils::FileUtilsStorage.rmrf_paths, [ - globs, + *globs, "#{rn_path}/React/Fabric/RCTThirdPartyFabricComponentsProvider.h", "#{rn_path}/React/Fabric/RCTThirdPartyFabricComponentsProvider.mm", ]) assert_equal(CodegenUtils.cleanup_done(), true) + ensure + # Restore original method so other tests are not affected + CodegenUtils.define_singleton_method(:assert_codegen_folder_is_empty, original_define_singleton_method) end # ===================================== # From c627b3ebdff0f93645b16100c21521a7958920b6 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 16:30:42 +0200 Subject: [PATCH 23/34] fix(test): ruby test - updated baselines in jsengine-test --- .../react-native/scripts/cocoapods/__tests__/jsengine-test.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb b/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb index a2de71ebb5b663..dee2a8cd5d98b8 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb @@ -37,8 +37,7 @@ def test_setupHermes_installsPods setup_hermes!(:react_native_path => @react_native_path) # Assert - assert_equal($podInvocationCount, 3) - assert_equal($podInvocation["React-jsi"][:path], "../../ReactCommon/jsi") + assert_equal($podInvocationCount, 2) hermes_engine_pod_invocation = $podInvocation["hermes-engine"] assert_equal(hermes_engine_pod_invocation[:podspec], "../../sdks/hermes-engine/hermes-engine.podspec") assert_equal(hermes_engine_pod_invocation[:tag], "") From d75322653c6f57d482a95c5f98455f5ad7d45273 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 18:15:45 +0200 Subject: [PATCH 24/34] fix: missing requires in new_architecture.rb --- packages/react-native/scripts/cocoapods/new_architecture.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/react-native/scripts/cocoapods/new_architecture.rb b/packages/react-native/scripts/cocoapods/new_architecture.rb index 8c7508b5400f04..320d79283f5c98 100644 --- a/packages/react-native/scripts/cocoapods/new_architecture.rb +++ b/packages/react-native/scripts/cocoapods/new_architecture.rb @@ -8,6 +8,8 @@ require_relative "./utils.rb" require_relative "./helpers.rb" require_relative "./jsengine.rb" +require_relative "./rndependencies.rb" +require_relative "./rncore.rb" class NewArchitectureHelper From 63ae020af68e550ae72098ceade0f18b3cdfe223 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 18:16:13 +0200 Subject: [PATCH 25/34] fix(test): ruby test - updated baselines in new_architecture-test --- .../__tests__/new_architecture-test.rb | 71 +++++++++++++------ 1 file changed, 48 insertions(+), 23 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb index c0345758e1c01a..4d358433438ecc 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb @@ -71,12 +71,12 @@ def test_modifyFlagsForNewArch_whenOnOldArch_doNothing NewArchitectureHelper.modify_flags_for_new_architecture(installer, false) # Assert - assert_equal(first_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_CFG_NO_COROUTINES=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -Wno-comma -Wno-shorten-64-to-32") + assert_equal(first_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) ") assert_equal(first_xcconfig.save_as_invocation, ["a/path/First.xcconfig"]) - assert_equal(second_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_CFG_NO_COROUTINES=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -Wno-comma -Wno-shorten-64-to-32") + assert_equal(second_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) ") assert_equal(second_xcconfig.save_as_invocation, ["a/path/Second.xcconfig"]) - assert_equal(react_core_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_CFG_NO_COROUTINES=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -Wno-comma -Wno-shorten-64-to-32") - assert_equal(react_core_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_CFG_NO_COROUTINES=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -Wno-comma -Wno-shorten-64-to-32") + assert_equal(react_core_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) ") + assert_equal(react_core_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) ") assert_equal(yoga_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited)") assert_equal(yoga_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited)") end @@ -101,15 +101,15 @@ def test_modifyFlagsForNewArch_whenOnNewArchAndIsRelease_updateFlags NewArchitectureHelper.modify_flags_for_new_architecture(installer, true) # Assert - assert_equal(first_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1") + assert_equal(first_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") assert_nil(first_xcconfig.attributes["OTHER_CFLAGS"]) assert_equal(first_xcconfig.save_as_invocation, ["a/path/First.xcconfig"]) - assert_equal(second_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1") + assert_equal(second_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") assert_nil(second_xcconfig.attributes["OTHER_CFLAGS"]) assert_equal(second_xcconfig.save_as_invocation, ["a/path/Second.xcconfig"]) - assert_equal(react_core_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1") + assert_equal(react_core_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") assert_nil(react_core_debug_config.build_settings["OTHER_CFLAGS"]) - assert_equal(react_core_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1") + assert_equal(react_core_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") assert_nil(react_core_release_config.build_settings["OTHER_CFLAGS"]) assert_equal(yoga_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited)") assert_nil(yoga_debug_config.build_settings["OTHER_CFLAGS"]) @@ -125,22 +125,30 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths spec = SpecMock.new # Act + ENV["RCT_NEW_ARCH_ENABLED"] = "1" NewArchitectureHelper.install_modules_dependencies(spec, true, '2024.10.14.00') # Assert - folly_config = Helpers::Constants.folly_config - folly_compiler_flags = folly_config[:compiler_flags] - assert_equal(spec.compiler_flags, "-DRCT_NEW_ARCH_ENABLED=1") - assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fast_float/include\" \"$(PODS_ROOT)/fmt/include\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-featureflags/React_featureflags.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-ImageManager/React_ImageManager.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-rendererdebug/React_rendererdebug.framework/Headers\"") + assert_equal( + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], + [ + "\"$(PODS_ROOT)/Headers/Private/Yoga\"", + "$(PODS_ROOT)/glog", + "$(PODS_ROOT)/boost", + "$(PODS_ROOT)/DoubleConversion", + "$(PODS_ROOT)/fast_float/include", + "$(PODS_ROOT)/fmt/include", + "$(PODS_ROOT)/SocketRocket", + "$(PODS_ROOT)/RCT-Folly" + ] + ) assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++20") - assert_equal(spec.pod_target_xcconfig["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1") + assert_equal(spec.pod_target_xcconfig["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") assert_equal( spec.dependencies, [ { :dependency_name => "React-Core" }, - { :dependency_name => "ReactNativeDependencies" }, - { :dependency_name => "glog" }, { :dependency_name => "React-RCTFabric" }, { :dependency_name => "ReactCodegen" }, { :dependency_name => "RCTRequired" }, @@ -156,33 +164,42 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths { :dependency_name => "React-debug" }, { :dependency_name => "React-ImageManager" }, { :dependency_name => "React-rendererdebug" }, + { :dependency_name => "React-jsi" }, + { :dependency_name => "React-renderercss" }, + { :dependency_name => "hermes-engine" }, + { :dependency_name => "glog" }, + { :dependency_name => "boost" }, { :dependency_name => "DoubleConversion" }, - { :dependency_name => "hermes-engine" } - ]) + { :dependency_name => "fast_float" }, + { :dependency_name => "fmt" }, + { :dependency_name => "RCT-Folly" }, + { :dependency_name => "SocketRocket" }, + { :dependency_name => "RCT-Folly/Fabric" }, + ] + ) end def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompilerFlagsArePresent_itInstallDependenciesAndPreserveOtherSettings # Arrange spec = SpecMock.new spec.compiler_flags = '' - other_flags = "\"$(ReactNativeDependencies)/boost\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCodegen/ReactCodegen.framework/Headers\"" + other_flags_arr = ["\"$(ReactNativeDependencies)/boost\"", "\"${PODS_CONFIGURATION_BUILD_DIR}/ReactCodegen/ReactCodegen.framework/Headers\""] spec.pod_target_xcconfig = { - "HEADER_SEARCH_PATHS" => other_flags + "HEADER_SEARCH_PATHS" => other_flags_arr.join(" ") } # Act + ENV["RCT_NEW_ARCH_ENABLED"] = nil NewArchitectureHelper.install_modules_dependencies(spec, false, '2024.10.14.00') # Assert assert_equal(Helpers::Constants.folly_config[:compiler_flags], "#{NewArchitectureHelper.folly_compiler_flags}") - assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "#{other_flags} \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fast_float/include\" \"$(PODS_ROOT)/fmt/include\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-featureflags/React_featureflags.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-ImageManager/React_ImageManager.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-rendererdebug/React_rendererdebug.framework/Headers\"") + assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], [*other_flags_arr, '"$(PODS_ROOT)/Headers/Private/Yoga"', '$(PODS_ROOT)/glog', '$(PODS_ROOT)/boost', '$(PODS_ROOT)/DoubleConversion', '$(PODS_ROOT)/fast_float/include', '$(PODS_ROOT)/fmt/include', '$(PODS_ROOT)/SocketRocket', '$(PODS_ROOT)/RCT-Folly']) assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++20") assert_equal( spec.dependencies, [ { :dependency_name => "React-Core" }, - { :dependency_name => "RCT-Folly", "version"=>"2024.10.14.00" }, - { :dependency_name => "glog" }, { :dependency_name => "React-RCTFabric" }, { :dependency_name => "ReactCodegen" }, { :dependency_name => "RCTRequired" }, @@ -198,8 +215,16 @@ def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompiler { :dependency_name => "React-debug" }, { :dependency_name => "React-ImageManager" }, { :dependency_name => "React-rendererdebug" }, + { :dependency_name => "React-jsi" }, + { :dependency_name => "React-renderercss" }, + { :dependency_name => "hermes-engine" }, + { :dependency_name => "glog" }, + { :dependency_name => "boost" }, { :dependency_name => "DoubleConversion" }, - { :dependency_name => "hermes-engine" } + { :dependency_name => "fast_float" }, + { :dependency_name => "fmt" }, + { :dependency_name => "RCT-Folly" }, + { :dependency_name => "SocketRocket" }, ] ) end From f92b135bbe38942697aa741bb460674d2b7b064e Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 18:19:46 +0200 Subject: [PATCH 26/34] fix(test): ruby test - updated baselines in utils-test --- .../react-native/scripts/cocoapods/__tests__/utils-test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb index 7ddbbb36e85f24..78d99eb1dee521 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb @@ -585,7 +585,7 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths # Assert user_project_mock.build_configurations.each do |config| received_search_path = config.build_settings["HEADER_SEARCH_PATHS"] - expected_search_path = "$(inherited) ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios" + expected_search_path = "$(inherited) ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx ${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios" assert_equal(expected_search_path, received_search_path) end @@ -593,7 +593,7 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths if pod_name == "SecondTarget" target_installation_result.native_target.build_configurations.each do |config| received_search_path = config.build_settings["HEADER_SEARCH_PATHS"] - expected_Search_path = "$(inherited) \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fast_float/include\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_ROOT)/boost\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCodegen/ReactCodegen.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\"" + expected_Search_path = "$(inherited) \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fast_float/include\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_ROOT)/boost\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCodegen/ReactCodegen.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\"" assert_equal(received_search_path, expected_Search_path) end else From 42eb4c32dd31c7faa5b1c4eea8dcba9a1dbb739c Mon Sep 17 00:00:00 2001 From: artus9033 Date: Wed, 24 Sep 2025 18:29:04 +0200 Subject: [PATCH 27/34] refactor: comment in codegen_utils-test.rb --- .../scripts/cocoapods/__tests__/codegen_utils-test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb index 431369846957f9..c39ab79b04689d 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb @@ -95,9 +95,9 @@ def testUseReactCodegenDiscovery_whenAppPathUndefined_abort ]) end - # ============================= # + # =========================== # # Test - CleanUpCodegenFolder # - # ============================= # + # =========================== # def testCleanUpCodegenFolder_whenCleanupDone_doNothing # Arrange From 5182a1b89f2f90995cc56c197e0b8d90f928bb58 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 25 Sep 2025 00:15:00 +0200 Subject: [PATCH 28/34] fix(test): fix order of arguments passed to assert_equal in Ruby tests --- .../cocoapods/__tests__/codegen_utils-test.rb | 46 ++--- .../cocoapods/__tests__/fabric-test.rb | 2 +- .../cocoapods/__tests__/jsengine-test.rb | 8 +- .../__tests__/local_podspec_patch-test.rb | 34 ++-- .../__tests__/new_architecture-test.rb | 68 ++++---- .../cocoapods/__tests__/test_utils/podSpy.rb | 4 +- .../scripts/cocoapods/__tests__/utils-test.rb | 160 +++++++++--------- 7 files changed, 159 insertions(+), 163 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb index c39ab79b04689d..ad4a5a62c3adb2 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb @@ -61,8 +61,8 @@ def testUseReactCodegenDiscovery_whenCodegenDisabled_doNothing # Assert assert_false(CodegenUtils.react_codegen_discovery_done()) - assert_equal(Pod::UI.collected_messages, []) - assert_equal(Pod::UI.collected_warns, []) + assert_equal([], Pod::UI.collected_messages) + assert_equal([], Pod::UI.collected_warns) end def testUseReactCodegenDiscovery_whenDiscoveryDone_doNothing @@ -74,8 +74,8 @@ def testUseReactCodegenDiscovery_whenDiscoveryDone_doNothing # Assert assert_true(CodegenUtils.react_codegen_discovery_done()) - assert_equal(Pod::UI.collected_messages, ["Skipping use_react_native_codegen_discovery."]) - assert_equal(Pod::UI.collected_warns, []) + assert_equal(["Skipping use_react_native_codegen_discovery."], Pod::UI.collected_messages) + assert_equal([], Pod::UI.collected_warns) end def testUseReactCodegenDiscovery_whenAppPathUndefined_abort @@ -88,11 +88,11 @@ def testUseReactCodegenDiscovery_whenAppPathUndefined_abort # Assert assert_false(CodegenUtils.react_codegen_discovery_done()) - assert_equal(Pod::UI.collected_messages, []) - assert_equal(Pod::UI.collected_warns, [ + assert_equal([], Pod::UI.collected_messages) + assert_equal([ 'Error: app_path is required for use_react_native_codegen_discovery.', 'If you are calling use_react_native_codegen_discovery! in your Podfile, please remove the call and pass `app_path` and/or `config_file_dir` to `use_react_native!`.' - ]) + ], Pod::UI.collected_warns) end # =========================== # @@ -109,9 +109,9 @@ def testCleanUpCodegenFolder_whenCleanupDone_doNothing CodegenUtils.clean_up_build_folder(rn_path, codegen_dir, dir_manager: DirMock, file_manager: FileMock) # Assert - assert_equal(FileUtils::FileUtilsStorage.rmrf_invocation_count, 0) - assert_equal(FileUtils::FileUtilsStorage.rmrf_paths, []) - assert_equal(CodegenUtils.cleanup_done(), true) + assert_equal(0, FileUtils::FileUtilsStorage.rmrf_invocation_count) + assert_equal([], FileUtils::FileUtilsStorage.rmrf_paths) + assert_equal(true, CodegenUtils.cleanup_done()) end def testCleanUpCodegenFolder_whenFolderDoesNotExists_markAsCleanupDone @@ -124,10 +124,10 @@ def testCleanUpCodegenFolder_whenFolderDoesNotExists_markAsCleanupDone CodegenUtils.clean_up_build_folder(rn_path, codegen_dir, dir_manager: DirMock, file_manager: FileMock) # Assert - assert_equal(FileUtils::FileUtilsStorage.rmrf_invocation_count, 0) - assert_equal(FileUtils::FileUtilsStorage.rmrf_paths, []) - assert_equal(DirMock.glob_invocation, []) - assert_equal(CodegenUtils.cleanup_done(), true) + assert_equal(0, FileUtils::FileUtilsStorage.rmrf_invocation_count) + assert_equal([], FileUtils::FileUtilsStorage.rmrf_paths) + assert_equal([], DirMock.glob_invocation) + assert_equal(true, CodegenUtils.cleanup_done()) end def testCleanUpCodegenFolder_whenFolderExists_deleteItAndSetCleanupDone @@ -152,14 +152,14 @@ def testCleanUpCodegenFolder_whenFolderExists_deleteItAndSetCleanupDone CodegenUtils.clean_up_build_folder(rn_path, codegen_dir, dir_manager: DirMock, file_manager: FileMock) # Assert - assert_equal(DirMock.exist_invocation_params, [codegen_path]) - assert_equal(FileUtils::FileUtilsStorage.rmrf_invocation_count, 3) - assert_equal(FileUtils::FileUtilsStorage.rmrf_paths, [ + assert_equal([codegen_path], DirMock.exist_invocation_params) + assert_equal(3, FileUtils::FileUtilsStorage.rmrf_invocation_count) + assert_equal([ *globs, "#{rn_path}/React/Fabric/RCTThirdPartyFabricComponentsProvider.h", "#{rn_path}/React/Fabric/RCTThirdPartyFabricComponentsProvider.mm", - ]) - assert_equal(CodegenUtils.cleanup_done(), true) + ], FileUtils::FileUtilsStorage.rmrf_paths) + assert_equal(true, CodegenUtils.cleanup_done()) ensure # Restore original method so other tests are not affected CodegenUtils.define_singleton_method(:assert_codegen_folder_is_empty, original_define_singleton_method) @@ -178,7 +178,7 @@ def test_assertCodegenFolderIsEmpty_whenItDoesNotExists_doesNotAbort CodegenUtils.assert_codegen_folder_is_empty(codegen_path, dir_manager: DirMock) # Assert - assert_equal(Pod::UI.collected_warns, []) + assert_equal([], Pod::UI.collected_warns) end def test_assertCodegenFolderIsEmpty_whenItExistsAndIsEmpty_doesNotAbort @@ -192,7 +192,7 @@ def test_assertCodegenFolderIsEmpty_whenItExistsAndIsEmpty_doesNotAbort CodegenUtils.assert_codegen_folder_is_empty(codegen_path, dir_manager: DirMock) # Assert - assert_equal(Pod::UI.collected_warns, []) + assert_equal([], Pod::UI.collected_warns) end def test_assertCodegenFolderIsEmpty_whenItIsNotEmpty_itAborts @@ -208,9 +208,9 @@ def test_assertCodegenFolderIsEmpty_whenItIsNotEmpty_itAborts } # Assert - assert_equal(Pod::UI.collected_warns, [ + assert_equal([ "Unable to remove the content of ~/app/ios/./build/generated/ios folder. Please run rm -rf ~/app/ios/./build/generated/ios and try again." - ]) + ], Pod::UI.collected_warns) end private diff --git a/packages/react-native/scripts/cocoapods/__tests__/fabric-test.rb b/packages/react-native/scripts/cocoapods/__tests__/fabric-test.rb index 07a3019e5c16b0..3f69f5c76797d5 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/fabric-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/fabric-test.rb @@ -52,6 +52,6 @@ def check_pod(name, path: nil, modular_headers: nil, podspec: nil) if modular_headers != nil then expected_params[:modular_headers] = modular_headers end if podspec != nil then expected_params[:podspec] = podspec end - assert_equal(params, expected_params) + assert_equal(expected_params, params) end end diff --git a/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb b/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb index dee2a8cd5d98b8..304c37c67fc4ce 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb @@ -37,11 +37,11 @@ def test_setupHermes_installsPods setup_hermes!(:react_native_path => @react_native_path) # Assert - assert_equal($podInvocationCount, 2) + assert_equal(2, $podInvocationCount) hermes_engine_pod_invocation = $podInvocation["hermes-engine"] - assert_equal(hermes_engine_pod_invocation[:podspec], "../../sdks/hermes-engine/hermes-engine.podspec") - assert_equal(hermes_engine_pod_invocation[:tag], "") - assert_equal($podInvocation["React-hermes"][:path], "../../ReactCommon/hermes") + assert_equal("../../sdks/hermes-engine/hermes-engine.podspec", hermes_engine_pod_invocation[:podspec]) + assert_equal("", hermes_engine_pod_invocation[:tag]) + assert_equal("../../ReactCommon/hermes", $podInvocation["React-hermes"][:path]) end end diff --git a/packages/react-native/scripts/cocoapods/__tests__/local_podspec_patch-test.rb b/packages/react-native/scripts/cocoapods/__tests__/local_podspec_patch-test.rb index 0941659e10f15a..bfcae0438049bc 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/local_podspec_patch-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/local_podspec_patch-test.rb @@ -34,12 +34,12 @@ def test_podsToUpdate_whenNoFilesExists_returnLocalPodspecs local_podspec = LocalPodspecPatch.pods_to_update(:react_native_path => react_native_path, dir_manager: DirMock, file_manager: FileMock) # Assert - assert_equal(local_podspec, []) - assert_equal(DirMock.glob_invocation, ["#{react_native_path}/third-party-podspecs/*"]) - assert_equal(FileMock.exist_invocation_params, [ + assert_equal([], local_podspec) + assert_equal(["#{react_native_path}/third-party-podspecs/*"], DirMock.glob_invocation) + assert_equal([ FileMock.join(mocked_pwd, "Pods/Local Podspecs", "boost.podspec.json"), FileMock.join(mocked_pwd, "Pods/Local Podspecs", "DoubleConversion.podspec.json"), - ]) + ], FileMock.exist_invocation_params) end def test_podsToUpdate_whenFilesExistsWithSameVersions_returnsEmpty @@ -53,12 +53,12 @@ def test_podsToUpdate_whenFilesExistsWithSameVersions_returnsEmpty local_podspec = LocalPodspecPatch.pods_to_update(:react_native_path => react_native_path, dir_manager: DirMock, file_manager: FileMock) # Assert - assert_equal(local_podspec, []) - assert_equal(DirMock.glob_invocation, ["#{react_native_path}/third-party-podspecs/*"]) - assert_equal(FileMock.exist_invocation_params, [ + assert_equal([], local_podspec) + assert_equal(["#{react_native_path}/third-party-podspecs/*"], DirMock.glob_invocation) + assert_equal([ FileMock.join(mocked_pwd, "Pods/Local Podspecs", "boost.podspec.json"), FileMock.join(mocked_pwd, "Pods/Local Podspecs", "DoubleConversion.podspec.json"), - ]) + ], FileMock.exist_invocation_params) end def test_podsToUpdate_whenFilesExistsWithDifferentVersions_returnsThem @@ -72,15 +72,15 @@ def test_podsToUpdate_whenFilesExistsWithDifferentVersions_returnsThem local_podspec = LocalPodspecPatch.pods_to_update(:react_native_path => react_native_path, dir_manager: DirMock, file_manager: FileMock) # Assert - assert_equal(local_podspec, [ + assert_equal([ "boost", "DoubleConversion" - ]) - assert_equal(DirMock.glob_invocation, ["#{react_native_path}/third-party-podspecs/*"]) - assert_equal(FileMock.exist_invocation_params, [ + ], local_podspec) + assert_equal(["#{react_native_path}/third-party-podspecs/*"], DirMock.glob_invocation) + assert_equal([ FileMock.join(mocked_pwd, "Pods/Local Podspecs", "boost.podspec.json"), FileMock.join(mocked_pwd, "Pods/Local Podspecs", "DoubleConversion.podspec.json"), - ]) + ], FileMock.exist_invocation_params) end # ======================================== # @@ -101,10 +101,10 @@ def test_patchDetectChangesWithPodfile_whenAlreadyChanged_returnSameChangeSet() new_changes = Pod::Lockfile.new().patch_detect_changes_with_podfile(changes) - assert_equal(new_changes, { + assert_equal({ :unchanged => ["some_pod"], :changed => ["boost", "DoubleConversion", "another_pod"] - }) + }, new_changes) end def test_patchDetectChangesWithPodfile_whenLocalPodsUnchanged_movesLocalPodsToChangeSet() @@ -122,10 +122,10 @@ def test_patchDetectChangesWithPodfile_whenLocalPodsUnchanged_movesLocalPodsToCh new_changes = Pod::Lockfile.new().patch_detect_changes_with_podfile(changes) - assert_equal(new_changes, { + assert_equal({ :unchanged => ["first_pod"], :changed => ["another_pod", "boost", "DoubleConversion"] - }) + }, new_changes) end # ========= # diff --git a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb index 4d358433438ecc..b062c6e3f2437a 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb @@ -34,18 +34,18 @@ def test_setClangCxxLanguageStandardIfNeeded_whenReactCoreIsPresent installer = prepare_mocked_installer_with_react_core NewArchitectureHelper.set_clang_cxx_language_standard_if_needed(installer) - assert_equal(installer.aggregate_targets[0].user_project.build_configurations[0].build_settings["CLANG_CXX_LANGUAGE_STANDARD"], "c++20") - assert_equal(installer.aggregate_targets[1].user_project.build_configurations[0].build_settings["CLANG_CXX_LANGUAGE_STANDARD"], "c++20") - assert_equal(Pod::UI.collected_messages, ["Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /test/path.xcproj", "Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /test/path2.xcproj"]) + assert_equal("c++20", installer.aggregate_targets[0].user_project.build_configurations[0].build_settings["CLANG_CXX_LANGUAGE_STANDARD"]) + assert_equal("c++20", installer.aggregate_targets[1].user_project.build_configurations[0].build_settings["CLANG_CXX_LANGUAGE_STANDARD"]) + assert_equal(["Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /test/path.xcproj", "Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /test/path2.xcproj"], Pod::UI.collected_messages) end def test_setClangCxxLanguageStandardIfNeeded_whenThereAreDifferentValuesForLanguageStandard_takesTheFirstValue installer = prepare_mocked_installer_with_react_core_and_different_language_standards NewArchitectureHelper.set_clang_cxx_language_standard_if_needed(installer) - assert_equal(installer.aggregate_targets[0].user_project.build_configurations[0].build_settings["CLANG_CXX_LANGUAGE_STANDARD"], "c++20") - assert_equal(installer.aggregate_targets[1].user_project.build_configurations[0].build_settings["CLANG_CXX_LANGUAGE_STANDARD"], "c++20") - assert_equal(Pod::UI.collected_messages, ["Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /test/path.xcproj", "Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /test/path2.xcproj"]) + assert_equal("c++20", installer.aggregate_targets[0].user_project.build_configurations[0].build_settings["CLANG_CXX_LANGUAGE_STANDARD"]) + assert_equal("c++20", installer.aggregate_targets[1].user_project.build_configurations[0].build_settings["CLANG_CXX_LANGUAGE_STANDARD"]) + assert_equal(["Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /test/path.xcproj", "Setting CLANG_CXX_LANGUAGE_STANDARD to c++20 on /test/path2.xcproj"], Pod::UI.collected_messages) end # =================== # @@ -71,14 +71,14 @@ def test_modifyFlagsForNewArch_whenOnOldArch_doNothing NewArchitectureHelper.modify_flags_for_new_architecture(installer, false) # Assert - assert_equal(first_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) ") - assert_equal(first_xcconfig.save_as_invocation, ["a/path/First.xcconfig"]) - assert_equal(second_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) ") - assert_equal(second_xcconfig.save_as_invocation, ["a/path/Second.xcconfig"]) - assert_equal(react_core_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) ") - assert_equal(react_core_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) ") - assert_equal(yoga_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited)") - assert_equal(yoga_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited)") + assert_equal("$(inherited) ", first_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"]) + assert_equal(["a/path/First.xcconfig"], first_xcconfig.save_as_invocation) + assert_equal("$(inherited) ", second_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"]) + assert_equal(["a/path/Second.xcconfig"], second_xcconfig.save_as_invocation) + assert_equal("$(inherited) ", react_core_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"]) + assert_equal("$(inherited) ", react_core_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"]) + assert_equal("$(inherited)", yoga_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"]) + assert_equal("$(inherited)", yoga_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"]) end def test_modifyFlagsForNewArch_whenOnNewArchAndIsRelease_updateFlags @@ -101,19 +101,19 @@ def test_modifyFlagsForNewArch_whenOnNewArchAndIsRelease_updateFlags NewArchitectureHelper.modify_flags_for_new_architecture(installer, true) # Assert - assert_equal(first_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") + assert_equal("$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ", first_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"]) assert_nil(first_xcconfig.attributes["OTHER_CFLAGS"]) - assert_equal(first_xcconfig.save_as_invocation, ["a/path/First.xcconfig"]) - assert_equal(second_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") + assert_equal(["a/path/First.xcconfig"], first_xcconfig.save_as_invocation) + assert_equal("$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ", second_xcconfig.attributes["OTHER_CPLUSPLUSFLAGS"]) assert_nil(second_xcconfig.attributes["OTHER_CFLAGS"]) - assert_equal(second_xcconfig.save_as_invocation, ["a/path/Second.xcconfig"]) - assert_equal(react_core_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") + assert_equal(["a/path/Second.xcconfig"], second_xcconfig.save_as_invocation) + assert_equal("$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ", react_core_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"]) assert_nil(react_core_debug_config.build_settings["OTHER_CFLAGS"]) - assert_equal(react_core_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") + assert_equal("$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ", react_core_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"]) assert_nil(react_core_release_config.build_settings["OTHER_CFLAGS"]) - assert_equal(yoga_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited)") + assert_equal("$(inherited)", yoga_debug_config.build_settings["OTHER_CPLUSPLUSFLAGS"]) assert_nil(yoga_debug_config.build_settings["OTHER_CFLAGS"]) - assert_equal(yoga_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"], "$(inherited)") + assert_equal("$(inherited)", yoga_release_config.build_settings["OTHER_CPLUSPLUSFLAGS"]) assert_nil(yoga_release_config.build_settings["OTHER_CFLAGS"]) end @@ -129,9 +129,8 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths NewArchitectureHelper.install_modules_dependencies(spec, true, '2024.10.14.00') # Assert - assert_equal(spec.compiler_flags, "-DRCT_NEW_ARCH_ENABLED=1") + assert_equal("-DRCT_NEW_ARCH_ENABLED=1", spec.compiler_flags) assert_equal( - spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], [ "\"$(PODS_ROOT)/Headers/Private/Yoga\"", "$(PODS_ROOT)/glog", @@ -141,12 +140,12 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths "$(PODS_ROOT)/fmt/include", "$(PODS_ROOT)/SocketRocket", "$(PODS_ROOT)/RCT-Folly" - ] + ], + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] ) - assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++20") - assert_equal(spec.pod_target_xcconfig["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ") + assert_equal("c++20", spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"]) + assert_equal("$(inherited) -DRCT_NEW_ARCH_ENABLED=1 ", spec.pod_target_xcconfig["OTHER_CPLUSPLUSFLAGS"]) assert_equal( - spec.dependencies, [ { :dependency_name => "React-Core" }, { :dependency_name => "React-RCTFabric" }, @@ -175,7 +174,8 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths { :dependency_name => "RCT-Folly" }, { :dependency_name => "SocketRocket" }, { :dependency_name => "RCT-Folly/Fabric" }, - ] + ], + spec.dependencies ) end @@ -193,11 +193,10 @@ def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompiler NewArchitectureHelper.install_modules_dependencies(spec, false, '2024.10.14.00') # Assert - assert_equal(Helpers::Constants.folly_config[:compiler_flags], "#{NewArchitectureHelper.folly_compiler_flags}") - assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], [*other_flags_arr, '"$(PODS_ROOT)/Headers/Private/Yoga"', '$(PODS_ROOT)/glog', '$(PODS_ROOT)/boost', '$(PODS_ROOT)/DoubleConversion', '$(PODS_ROOT)/fast_float/include', '$(PODS_ROOT)/fmt/include', '$(PODS_ROOT)/SocketRocket', '$(PODS_ROOT)/RCT-Folly']) - assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++20") + assert_equal("#{NewArchitectureHelper.folly_compiler_flags}", Helpers::Constants.folly_config[:compiler_flags]) + assert_equal([*other_flags_arr, '"$(PODS_ROOT)/Headers/Private/Yoga"', '$(PODS_ROOT)/glog', '$(PODS_ROOT)/boost', '$(PODS_ROOT)/DoubleConversion', '$(PODS_ROOT)/fast_float/include', '$(PODS_ROOT)/fmt/include', '$(PODS_ROOT)/SocketRocket', '$(PODS_ROOT)/RCT-Folly'], spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"]) + assert_equal("c++20", spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"]) assert_equal( - spec.dependencies, [ { :dependency_name => "React-Core" }, { :dependency_name => "React-RCTFabric" }, @@ -225,7 +224,8 @@ def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompiler { :dependency_name => "fmt" }, { :dependency_name => "RCT-Folly" }, { :dependency_name => "SocketRocket" }, - ] + ], + spec.dependencies ) end diff --git a/packages/react-native/scripts/cocoapods/__tests__/test_utils/podSpy.rb b/packages/react-native/scripts/cocoapods/__tests__/test_utils/podSpy.rb index 0c777f83fdcb19..8848971044f30f 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/test_utils/podSpy.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/test_utils/podSpy.rb @@ -14,8 +14,8 @@ # variable. A $podInvocationCount counter is increased as well. # # You can assert against these variables to check: -# * The `pod` function has been invoked X times: `assert_equal($podInvocationCount, X)` -# * A specific pod has been installed: `assert_equal($podInvocation["MyPod"][:version], "15.4.6")` +# * The `pod` function has been invoked X times: `assert_equal(X, $podInvocationCount)` +# * A specific pod has been installed: `assert_equal("15.4.6", $podInvocation["MyPod"][:version])` $podInvocation = {} diff --git a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb index 78d99eb1dee521..76a67c2b8a16c7 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb @@ -52,8 +52,8 @@ def test_warnIfNotOnArm64_whenSysctlReturnsNot1_printsNothing ReactNativePodsUtils.warn_if_not_on_arm64() # Assert - assert_equal(Pod::UI.collected_messages, []) - assert_equal(Pod::UI.collected_warns, []) + assert_equal([], Pod::UI.collected_messages) + assert_equal([], Pod::UI.collected_warns) end @@ -66,8 +66,8 @@ def test_warnIfNotOnArm64_whenSysctlReturns1AndRubyIncludeArm64_printsNothing ReactNativePodsUtils.warn_if_not_on_arm64() # Assert - assert_equal(Pod::UI.collected_messages, []) - assert_equal(Pod::UI.collected_warns, []) + assert_equal([], Pod::UI.collected_messages) + assert_equal([], Pod::UI.collected_warns) end def test_warnIfNotOnArm64_whenSysctlReturns1AndRubyNotIncludeArm64_warns @@ -79,13 +79,13 @@ def test_warnIfNotOnArm64_whenSysctlReturns1AndRubyNotIncludeArm64_warns ReactNativePodsUtils.warn_if_not_on_arm64() # Assert - assert_equal(Pod::UI.collected_messages, []) - assert_equal(Pod::UI.collected_warns, [ + assert_equal([], Pod::UI.collected_messages) + assert_equal([ 'Do not use "pod install" from inside Rosetta2 (x86_64 emulation on arm64).', ' - Emulated x86_64 is slower than native arm64', ' - May result in mixed architectures in rubygems (eg: ffi_c.bundle files may be x86_64 with an arm64 interpreter)', 'Run "env /usr/bin/arch -arm64 /bin/bash --login" then try again.', - ]) + ], Pod::UI.collected_warns) end # ====================== # @@ -99,10 +99,10 @@ def test_getDefaultFlag_whenOldArchitecture() flags = ReactNativePodsUtils.get_default_flags() # Assert - assert_equal(flags, { + assert_equal({ :fabric_enabled => false, :hermes_enabled => true, - }) + }, flags) end def test_getDefaultFlag_whenNewArchitecture() @@ -113,10 +113,10 @@ def test_getDefaultFlag_whenNewArchitecture() flags = ReactNativePodsUtils.get_default_flags() # Assert - assert_equal(flags, { + assert_equal({ :fabric_enabled => true, :hermes_enabled => true, - }) + }, flags) end # ============== # @@ -130,7 +130,7 @@ def test_hasPod_whenInstallerDoesNotHavePod_returnFalse result = ReactNativePodsUtils.has_pod(installer, "some_pod") # Assert - assert_equal(result, false) + assert_equal(false, result) end @@ -142,7 +142,7 @@ def test_hasPod_whenInstallerHasPod_returnTrue result = ReactNativePodsUtils.has_pod(installer, "some_pod") # Assert - assert_equal(result, true) + assert_equal(true, result) end # ======================================================== # @@ -230,7 +230,7 @@ def test_fixLibrarySearchPath_whenThereAreSearchPathsAndSwiftUnescaped_removesSw ReactNativePodsUtils.fix_library_search_path(buildConfig) # Assert - assert_equal(buildConfig.build_settings["LIBRARY_SEARCH_PATHS"], ["$(SDKROOT)/usr/lib/swift"]) + assert_equal(["$(SDKROOT)/usr/lib/swift"], buildConfig.build_settings["LIBRARY_SEARCH_PATHS"]) end def test_fixLibrarySearchPath_whenThereAreSearchPathsAndSwiftEscaped_removesSwift5_5 @@ -246,7 +246,7 @@ def test_fixLibrarySearchPath_whenThereAreSearchPathsAndSwiftEscaped_removesSwif ReactNativePodsUtils.fix_library_search_path(buildConfig) # Assert - assert_equal(buildConfig.build_settings["LIBRARY_SEARCH_PATHS"], ["another/path", "\"$(SDKROOT)/usr/lib/swift\""]) + assert_equal(["another/path", "\"$(SDKROOT)/usr/lib/swift\""], buildConfig.build_settings["LIBRARY_SEARCH_PATHS"]) end def test_fixLibrarySearchPath_whenThereAreSearchPathsAndNoSwift_removesSwift5_5AndAddsSwiftAsFirst @@ -259,7 +259,7 @@ def test_fixLibrarySearchPath_whenThereAreSearchPathsAndNoSwift_removesSwift5_5A ReactNativePodsUtils.fix_library_search_path(buildConfig) # Assert - assert_equal(buildConfig.build_settings["LIBRARY_SEARCH_PATHS"], ["$(SDKROOT)/usr/lib/swift", "another/path"]) + assert_equal(["$(SDKROOT)/usr/lib/swift", "another/path"], buildConfig.build_settings["LIBRARY_SEARCH_PATHS"]) end # ============================== # @@ -291,29 +291,29 @@ def test_fixLibrarySearchPaths_correctlySetsTheSearchPathsForAllProjects # Assert user_project_mock.build_configurations.each do |config| - assert_equal(config.build_settings["LIBRARY_SEARCH_PATHS"], [ + assert_equal([ "$(SDKROOT)/usr/lib/swift", "another/path" - ]) + ], config.build_settings["LIBRARY_SEARCH_PATHS"]) end user_project_mock.native_targets.each do |target| target.build_configurations.each do |config| - assert_equal(config.build_settings["LIBRARY_SEARCH_PATHS"], [ + assert_equal([ "$(SDKROOT)/usr/lib/swift", "another/path" - ]) + ], config.build_settings["LIBRARY_SEARCH_PATHS"]) end end pods_projects_mock.native_targets.each do |target| target.build_configurations.each do |config| - assert_equal(config.build_settings["LIBRARY_SEARCH_PATHS"], [ + assert_equal([ "$(SDKROOT)/usr/lib/swift", "another/path" - ]) + ], config.build_settings["LIBRARY_SEARCH_PATHS"]) end end - assert_equal(user_project_mock.save_invocation_count, 1) - assert_equal(pods_projects_mock.save_invocation_count, 1) + assert_equal(1, user_project_mock.save_invocation_count) + assert_equal(1, pods_projects_mock.save_invocation_count) end # ===================================== # @@ -363,13 +363,13 @@ def test_turnOffResourceBundleReactCore_correctlyAppliesPatch # Assert # these must have changed - assert_equal(react_core_debug_config.build_settings["CODE_SIGNING_ALLOWED"], "NO") - assert_equal(react_core_release_config.build_settings["CODE_SIGNING_ALLOWED"], "NO") + assert_equal("NO", react_core_debug_config.build_settings["CODE_SIGNING_ALLOWED"]) + assert_equal("NO", react_core_release_config.build_settings["CODE_SIGNING_ALLOWED"]) # these needs to stay the same - assert_equal(hermes_engine_debug_config.build_settings["CODE_SIGNING_ALLOWED"], "NO") - assert_equal(hermes_engine_release_config.build_settings["CODE_SIGNING_ALLOWED"], "NO") - assert_equal(assets_debug_config.build_settings["CODE_SIGNING_ALLOWED"], "YES") - assert_equal(assets_release_config.build_settings["CODE_SIGNING_ALLOWED"], "YES") + assert_equal("NO", hermes_engine_debug_config.build_settings["CODE_SIGNING_ALLOWED"]) + assert_equal("NO", hermes_engine_release_config.build_settings["CODE_SIGNING_ALLOWED"]) + assert_equal("YES", assets_debug_config.build_settings["CODE_SIGNING_ALLOWED"]) + assert_equal("YES", assets_release_config.build_settings["CODE_SIGNING_ALLOWED"]) end # ================================= # @@ -407,18 +407,18 @@ def test_applyMacCatalystPatches_correctlyAppliesNecessaryPatches end third_target.build_configurations.each do |config| - assert_equal(config.build_settings["CODE_SIGN_IDENTITY[sdk=macosx*]"], "-") + assert_equal("-", config.build_settings["CODE_SIGN_IDENTITY[sdk=macosx*]"]) end user_project_mock.native_targets.each do |target| target.build_configurations.each do |config| - assert_equal(config.build_settings["DEAD_CODE_STRIPPING"], "YES") - assert_equal(config.build_settings["PRESERVE_DEAD_CODE_INITS_AND_TERMS"], "YES") - assert_equal(config.build_settings["LIBRARY_SEARCH_PATHS"], ["$(SDKROOT)/usr/lib/swift", "$(SDKROOT)/System/iOSSupport/usr/lib/swift", "$(inherited)"]) + assert_equal("YES", config.build_settings["DEAD_CODE_STRIPPING"]) + assert_equal("YES", config.build_settings["PRESERVE_DEAD_CODE_INITS_AND_TERMS"]) + assert_equal(["$(SDKROOT)/usr/lib/swift", "$(SDKROOT)/System/iOSSupport/usr/lib/swift", "$(inherited)"], config.build_settings["LIBRARY_SEARCH_PATHS"]) end end - assert_equal(user_project_mock.save_invocation_count, 1) + assert_equal(1, user_project_mock.save_invocation_count) end # ==================================== # @@ -439,12 +439,12 @@ def test_setBuildSetting_addTheUserSetting # Assert user_project_mock.build_configurations.each do |config| - assert_equal(config.build_settings["TEST_SETTING"], ["Test"]) + assert_equal(["Test"], config.build_settings["TEST_SETTING"]) end - assert_equal(user_project_mock.save_invocation_count, 1) - assert_equal(pods_projects_mock.save_invocation_count, 1) - assert_equal(Pod::UI.collected_messages, ["Setting TEST_SETTING build settings"]) + assert_equal(1, user_project_mock.save_invocation_count) + assert_equal(1, pods_projects_mock.save_invocation_count) + assert_equal(["Setting TEST_SETTING build settings"], Pod::UI.collected_messages) end # ==================================== # @@ -466,13 +466,13 @@ def test_setBuildSettingDebug_addTheUserSetting # Assert user_project_mock.build_configurations.each do |config| if config.name == "Debug" then - assert_equal(config.build_settings["TEST_SETTING"], ["Test"]) + assert_equal(["Test"], config.build_settings["TEST_SETTING"]) end end - assert_equal(user_project_mock.save_invocation_count, 1) - assert_equal(pods_projects_mock.save_invocation_count, 1) - assert_equal(Pod::UI.collected_messages, ["Setting TEST_SETTING build settings"]) + assert_equal(1, user_project_mock.save_invocation_count) + assert_equal(1, pods_projects_mock.save_invocation_count) + assert_equal(["Setting TEST_SETTING build settings"], Pod::UI.collected_messages) end # =================================== # @@ -485,8 +485,8 @@ def test_createXcodeEnvIfMissing_whenTheyArePresent_doNothing # Act ReactNativePodsUtils.create_xcode_env_if_missing(file_manager: FileMock) # Assert - assert_equal(FileMock.exist_invocation_params, ["/.xcode.env", "/.xcode.env.local"]) - assert_equal($collected_commands, []) + assert_equal(["/.xcode.env", "/.xcode.env.local"], FileMock.exist_invocation_params) + assert_equal([], $collected_commands) end def test_createXcodeEnvIfMissing_whenTheyAreNotPresent_createsThem @@ -495,8 +495,8 @@ def test_createXcodeEnvIfMissing_whenTheyAreNotPresent_createsThem # Act ReactNativePodsUtils.create_xcode_env_if_missing(file_manager: FileMock) # Assert - assert_equal(FileMock.exist_invocation_params, ["/.xcode.env", "/.xcode.env.local"]) - assert_equal($collected_commands[0], "echo 'export NODE_BINARY=$(command -v node)' > /.xcode.env") + assert_equal(["/.xcode.env", "/.xcode.env.local"], FileMock.exist_invocation_params) + assert_equal("echo 'export NODE_BINARY=$(command -v node)' > /.xcode.env", $collected_commands[0]) end # ============================ # @@ -511,7 +511,7 @@ def test_detectUseFrameworks_whenEnvAlreadySet_DoesNothing ReactNativePodsUtils.detect_use_frameworks(target_definition) # Assert - assert_equal(Pod::UI.collected_messages, []) + assert_equal([], Pod::UI.collected_messages) end def test_detectUseFrameworks_whenEnvNotSetAndNotUsed_setEnvVarToNil @@ -522,7 +522,7 @@ def test_detectUseFrameworks_whenEnvNotSetAndNotUsed_setEnvVarToNil ReactNativePodsUtils.detect_use_frameworks(target_definition) # Assert - assert_equal(Pod::UI.collected_messages, ["Framework build type is static library"]) + assert_equal(["Framework build type is static library"], Pod::UI.collected_messages) assert_nil(ENV['USE_FRAMEWORKS']) end @@ -534,8 +534,8 @@ def test_detectUseFrameworks_whenEnvNotSetAndStaticFrameworks_setEnvVarToStatic ReactNativePodsUtils.detect_use_frameworks(target_definition) # Assert - assert_equal(Pod::UI.collected_messages, ["Framework build type is static framework"]) - assert_equal(ENV['USE_FRAMEWORKS'], 'static') + assert_equal(["Framework build type is static framework"], Pod::UI.collected_messages) + assert_equal('static', ENV['USE_FRAMEWORKS']) end def test_detectUseFrameworks_whenEnvNotSetAndDynamicFrameworks_setEnvVarToDynamic @@ -546,8 +546,8 @@ def test_detectUseFrameworks_whenEnvNotSetAndDynamicFrameworks_setEnvVarToDynami ReactNativePodsUtils.detect_use_frameworks(target_definition) # Assert - assert_equal(Pod::UI.collected_messages, ["Framework build type is dynamic framework"]) - assert_equal(ENV['USE_FRAMEWORKS'], 'dynamic') + assert_equal(["Framework build type is dynamic framework"], Pod::UI.collected_messages) + assert_equal('dynamic', ENV['USE_FRAMEWORKS']) end # ============================ # @@ -594,7 +594,7 @@ def test_updateSearchPaths_whenUseFrameworks_addsSearchPaths target_installation_result.native_target.build_configurations.each do |config| received_search_path = config.build_settings["HEADER_SEARCH_PATHS"] expected_Search_path = "$(inherited) \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fast_float/include\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_ROOT)/boost\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCodegen/ReactCodegen.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\"" - assert_equal(received_search_path, expected_Search_path) + assert_equal(expected_Search_path, received_search_path) end else target_installation_result.native_target.build_configurations.each do |config| @@ -706,18 +706,18 @@ def test_add_search_path_if_not_included_adds_to_empty_array def test_creatHeaderSearchPathForFrameworks_whenNoPlatformsAndNoExtraPath_createsPlainSearchPath result = ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-RCTFabric", "RCTFabric", []) - assert_equal(result, [ + assert_equal([ "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers" - ]) + ], result) end def test_creatHeaderSearchPathForFrameworks_whenNoPlatformsAndExtraPath_createsPlainSearchPath result = ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-Fabric", "React_Fabric", ["react/renderer/components/view/platform/cxx"]) - assert_equal(result, [ + assert_equal([ "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers", "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", - ]) + ], result) end def test_creatHeaderSearchPathForFrameworks_whenEmptyPlatformsAndExtraPath_createsPlainSearchPath @@ -725,10 +725,10 @@ def test_creatHeaderSearchPathForFrameworks_whenEmptyPlatformsAndExtraPath_creat result = ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-Fabric", "React_Fabric", ["react/renderer/components/view/platform/cxx"]) - assert_equal(result, [ + assert_equal([ "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers", "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", - ]) + ], result) end def test_creatHeaderSearchPathForFrameworks_whenOnlyOnePlatformsAndExtraPath_createsPlainSearchPath @@ -736,10 +736,10 @@ def test_creatHeaderSearchPathForFrameworks_whenOnlyOnePlatformsAndExtraPath_cre result = ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-Fabric", "React_Fabric", ["react/renderer/components/view/platform/cxx"]) - assert_equal(result, [ + assert_equal([ "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers", "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", - ]) + ], result) end def test_creatHeaderSearchPathForFrameworks_whenMultiplePlatformsAndExtraPath_createsPlainSearchPath @@ -755,14 +755,14 @@ def test_creatHeaderSearchPathForFrameworks_whenMultiplePlatformsAndExtraPath_cr ] ) - assert_equal(result, [ + assert_equal([ "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-iOS/React_Fabric.framework/Headers", "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-iOS/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-iOS/React_Fabric.framework/Headers/react/renderer/components/view/platform/ios", "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-macOS/React_Fabric.framework/Headers", "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-macOS/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-macOS/React_Fabric.framework/Headers/react/renderer/components/view/platform/ios", - ]) + ], result) end # ===================== # @@ -773,8 +773,8 @@ def test_addDependency_whenNoHeaderSearchPathAndNoVersion_addsThem ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric") - assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric"}]) - assert_equal(spec.to_hash["pod_target_xcconfig"], {"HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}) + assert_equal([{:dependency_name => "React-Fabric"}], spec.dependencies) + assert_equal({"HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}, spec.to_hash["pod_target_xcconfig"]) end def test_addDependency_whenNoHeaderSearchPathAndVersion_addsThem @@ -782,8 +782,8 @@ def test_addDependency_whenNoHeaderSearchPathAndVersion_addsThem ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') - assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}]) - assert_equal(spec.to_hash["pod_target_xcconfig"], {"HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}) + assert_equal([{:dependency_name => "React-Fabric", "version" => '1000.0.0'}], spec.dependencies) + assert_equal({"HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}, spec.to_hash["pod_target_xcconfig"]) end def test_addDependency_whenHeaderSearchPathAndVersion_addsThemMaintainingTheSearchPaths @@ -792,8 +792,8 @@ def test_addDependency_whenHeaderSearchPathAndVersion_addsThemMaintainingTheSear ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') - assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}]) - assert_equal(spec.to_hash["pod_target_xcconfig"], {"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}) + assert_equal([{:dependency_name => "React-Fabric", "version" => '1000.0.0'}], spec.dependencies) + assert_equal({"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}, spec.to_hash["pod_target_xcconfig"]) end def test_addDependencies_whenHeaderSearchPathAndVersion_addsThemMaintainingTheSearchPaths @@ -803,9 +803,8 @@ def test_addDependencies_whenHeaderSearchPathAndVersion_addsThemMaintainingTheSe ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') ReactNativePodsUtils.add_dependency(spec, "React-RCTFabric", "PODS_CONFIGURATION_BUILD_DIR", "RCTFabric", :additional_paths => []) - assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) - assert_equal(spec.to_hash["pod_target_xcconfig"], { - "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\""}) + assert_equal([{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }], spec.dependencies) + assert_equal({"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\""}, spec.to_hash["pod_target_xcconfig"]) end def test_addDependencies_whenHeaderSearchPathAndVersionWithAdditionalPaths_addsThemMaintainingTheSearchPaths @@ -815,9 +814,8 @@ def test_addDependencies_whenHeaderSearchPathAndVersionWithAdditionalPaths_addsT ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') ReactNativePodsUtils.add_dependency(spec, "React-RCTFabric", "PODS_CONFIGURATION_BUILD_DIR", "RCTFabric", :additional_paths => ["react/renderer/components/view/platform/ios"]) - assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) - assert_equal(spec.to_hash["pod_target_xcconfig"], { - "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers/react/renderer/components/view/platform/ios\""}) + assert_equal([{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }], spec.dependencies) + assert_equal({"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers/react/renderer/components/view/platform/ios\""}, spec.to_hash["pod_target_xcconfig"]) end def test_addDependencies_whenHeaderSearchPathAndVersionWithAdditionalPathsAndPlatforms_addsThemMaintainingTheSearchPaths @@ -840,9 +838,8 @@ def test_addDependencies_whenHeaderSearchPathAndVersionWithAdditionalPathsAndPla .map { |sp| return "\"#{sp}\"" } .join(" ") - assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) - assert_equal(spec.to_hash["pod_target_xcconfig"], { - "HEADER_SEARCH_PATHS" => expected_search_paths}) + assert_equal([{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }], spec.dependencies) + assert_equal({"HEADER_SEARCH_PATHS" => expected_search_paths}, spec.to_hash["pod_target_xcconfig"]) end def test_addDependencies_whenSubspecsAndHeaderSearchPathAndVersionWithAdditionalPathsAndPlatforms_addsThemMaintainingTheSearchPaths @@ -862,9 +859,8 @@ def test_addDependencies_whenSubspecsAndHeaderSearchPathAndVersionWithAdditional .map { |sp| return "\"#{sp}\"" } .join(" ") - assert_equal(spec.dependencies, [{:dependency_name => "ReactCommon/turbomodule/core"}]) - assert_equal(spec.to_hash["pod_target_xcconfig"], { - "HEADER_SEARCH_PATHS" => expected_search_paths}) + assert_equal([{:dependency_name => "ReactCommon/turbomodule/core"}], spec.dependencies) + assert_equal({"HEADER_SEARCH_PATHS" => expected_search_paths}, spec.to_hash["pod_target_xcconfig"]) end def test_add_flag_to_map_with_inheritance_whenUsedWithBuildConfigBuildSettings From c02cc352172b1f6e9a5af78e9bb4c04c1ff73be1 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 25 Sep 2025 00:20:29 +0200 Subject: [PATCH 29/34] fix(ci): bump up the target device of iOS test runner to a present one --- scripts/.tests.env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/.tests.env b/scripts/.tests.env index ea967e18a4956b..2d06c389aac360 100644 --- a/scripts/.tests.env +++ b/scripts/.tests.env @@ -24,8 +24,8 @@ export AVD_ABI=x86 export ANDROID_DISABLE_AVD_TESTS=1 ## IOS ## -export IOS_TARGET_OS="16.4" -export IOS_DEVICE="iPhone 14" +export IOS_TARGET_OS="18.1" +export IOS_DEVICE="iPhone 16" export SDK_IOS="iphonesimulator" ## CI OVERRIDES ## From d3cb26c2a993d533e1259598c4fbed4c128aa436 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Sun, 28 Sep 2025 18:28:11 +0200 Subject: [PATCH 30/34] chore: temporarily disable throwIfOnLegacyArch in RCTBridge --- packages/react-native/React/Base/RCTBridge.mm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-native/React/Base/RCTBridge.mm b/packages/react-native/React/Base/RCTBridge.mm index 2b62694d214fa5..8b6bb7d0d08624 100644 --- a/packages/react-native/React/Base/RCTBridge.mm +++ b/packages/react-native/React/Base/RCTBridge.mm @@ -380,10 +380,10 @@ - (instancetype)initWithDelegate:(id)delegate moduleProvider:(RCTBridgeModuleListProvider)block launchOptions:(NSDictionary *)launchOptions { - // Only enabld this assertion in OSS -#if COCOAPODS - [RCTBridge throwIfOnLegacyArch]; -#endif + // Only enable this assertion in OSS +//#if COCOAPODS +// [RCTBridge throwIfOnLegacyArch]; +//#endif if (self = [super init]) { RCTEnforceNewArchitectureValidation(RCTNotAllowedInBridgeless, self, nil); From 3b208c9a1626078b0f73e2c496d6bd3d10e15a82 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 2 Oct 2025 14:52:42 +0200 Subject: [PATCH 31/34] fix(ci): include RCTTest source files in CI compilation that utilizes prebuilt artifacts --- packages/rn-tester/Podfile | 2 -- packages/rn-tester/RCTTest/React-RCTTest.podspec | 2 +- scripts/objc-test.sh | 5 +++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/rn-tester/Podfile b/packages/rn-tester/Podfile index dae3a107f6bb3b..93e41d495a924e 100644 --- a/packages/rn-tester/Podfile +++ b/packages/rn-tester/Podfile @@ -21,8 +21,6 @@ end prepare_react_native_project! -IN_CI = ENV['CI'] == 'true' - @prefix_path = "../react-native" linkage = ENV['USE_FRAMEWORKS'] diff --git a/packages/rn-tester/RCTTest/React-RCTTest.podspec b/packages/rn-tester/RCTTest/React-RCTTest.podspec index e96768635781f4..aaff1ebf16a29c 100644 --- a/packages/rn-tester/RCTTest/React-RCTTest.podspec +++ b/packages/rn-tester/RCTTest/React-RCTTest.podspec @@ -26,7 +26,7 @@ Pod::Spec.new do |s| s.platforms = min_supported_versions s.compiler_flags = '-Wno-nullability-completeness' s.source = source - s.source_files = podspec_sources("**/*.{h,m,mm}", "**/*.h") + s.source_files = "**/*.{h,m,mm}" s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs" s.framework = "XCTest" s.header_dir = "RCTTest" diff --git a/scripts/objc-test.sh b/scripts/objc-test.sh index 6bf0db17aa072f..012f389cb1b677 100755 --- a/scripts/objc-test.sh +++ b/scripts/objc-test.sh @@ -86,7 +86,8 @@ buildForTesting() { xcodebuild build-for-testing \ -workspace RNTesterPods.xcworkspace \ -scheme RNTester \ - -sdk iphonesimulator + -sdk iphonesimulator \ + -derivedDataPath "/tmp/RNTesterBuild" } runTestsOnly() { @@ -155,7 +156,7 @@ main() { # Build and run tests. RESULT=-1 - MAX_RETRY=3 + MAX_RETRY=1 for ((i=1; i<=MAX_RETRY; i++)) do echo "Attempt #$i of running tests..." From f4b1eb5543228d9254b8a1814fc9fe1ca5635f7e Mon Sep 17 00:00:00 2001 From: artus9033 Date: Thu, 2 Oct 2025 14:53:45 +0200 Subject: [PATCH 32/34] fix(ci): correct path to test results in test-ios-rntester --- .github/actions/test-ios-rntester/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/test-ios-rntester/action.yml b/.github/actions/test-ios-rntester/action.yml index b6058a2ad9a408..1ab2b84975d5c8 100644 --- a/.github/actions/test-ios-rntester/action.yml +++ b/.github/actions/test-ios-rntester/action.yml @@ -143,7 +143,7 @@ runs: shell: bash run: | echo "zipping tests results" - cd /Users/distiller/Library/Developer/Xcode + cd /Users/runner/Library/Developer/Xcode XCRESULT_PATH=$(find . -name '*.xcresult') tar -zcvf xcresults.tar.gz $XCRESULT_PATH - name: Upload artifact @@ -151,7 +151,7 @@ runs: if: ${{ inputs.run-unit-integration-tests == 'true' }} with: name: xcresults - path: /Users/distiller/Library/Developer/Xcode/xcresults.tar.gz + path: /Users/runner/Library/Developer/Xcode/xcresults.tar.gz - name: Upload RNTester App if: ${{ inputs.use-frameworks == 'StaticLibraries' && inputs.ruby-version == '2.6.10' }} # This is needed to avoid conflicts with the artifacts uses: actions/upload-artifact@v4.3.4 From 8fd5bc2c8fe8062aad338d0030854efea3b9190d Mon Sep 17 00:00:00 2001 From: artus9033 Date: Fri, 3 Oct 2025 00:20:31 +0200 Subject: [PATCH 33/34] fix: explicitly define NDEBUG in objc-test --- scripts/objc-test.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/objc-test.sh b/scripts/objc-test.sh index 012f389cb1b677..d816d1583a8ae3 100755 --- a/scripts/objc-test.sh +++ b/scripts/objc-test.sh @@ -87,7 +87,8 @@ buildForTesting() { -workspace RNTesterPods.xcworkspace \ -scheme RNTester \ -sdk iphonesimulator \ - -derivedDataPath "/tmp/RNTesterBuild" + -derivedDataPath "/tmp/RNTesterBuild" \ + GCC_PREPROCESSOR_DEFINITIONS='$(inherited) NDEBUG=1' } runTestsOnly() { From bf04df5bf4316ad928d3d8759a440ed5d6e944a6 Mon Sep 17 00:00:00 2001 From: artus9033 Date: Fri, 3 Oct 2025 21:56:15 +0200 Subject: [PATCH 34/34] fix(ci): conflicts between test artifacts' names --- .github/actions/test-ios-rntester/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/test-ios-rntester/action.yml b/.github/actions/test-ios-rntester/action.yml index 1ab2b84975d5c8..ad2b91a76e1375 100644 --- a/.github/actions/test-ios-rntester/action.yml +++ b/.github/actions/test-ios-rntester/action.yml @@ -150,7 +150,7 @@ runs: uses: actions/upload-artifact@v4.3.4 if: ${{ inputs.run-unit-integration-tests == 'true' }} with: - name: xcresults + name: xcresults-${{ inputs.flavor }}-${{ inputs.use-frameworks }}-Ruby${{ inputs.ruby-version }} path: /Users/runner/Library/Developer/Xcode/xcresults.tar.gz - name: Upload RNTester App if: ${{ inputs.use-frameworks == 'StaticLibraries' && inputs.ruby-version == '2.6.10' }} # This is needed to avoid conflicts with the artifacts @@ -162,5 +162,5 @@ runs: if: ${{ inputs.run-unit-integration-tests == 'true' }} uses: actions/upload-artifact@v4.3.4 with: - name: test-results + name: test-results-${{ inputs.flavor }}-${{ inputs.use-frameworks }}-Ruby${{ inputs.ruby-version }} path: ./reports/junit