From a196e22bc842f17fbf952451454556591bceb663 Mon Sep 17 00:00:00 2001 From: Christoph Purrer Date: Tue, 5 Apr 2022 19:57:59 -0700 Subject: [PATCH] Allow ReactInstrumentationTest to use TurboModulues Summary: Update ReactInstrumentationTest to allow passing in a ReactPackageTurboModuleManagerDelegate.Builder Changelog: Internal Reviewed By: RSNara Differential Revision: D35349451 fbshipit-source-id: 940da345524eecb2645104ac29508c66134162e2 --- .../react/testing/ReactAppTestActivity.java | 4 ++++ .../react/testing/ReactInstanceSpecForTest.java | 13 +++++++++++++ .../react/testing/ReactInstrumentationTest.java | 8 ++++++++ 3 files changed, 25 insertions(+) diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java index 308f2ae8d05..7d89ab5b2ec 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java @@ -214,6 +214,10 @@ public class ReactAppTestActivity extends FragmentActivity if (spec.getJavaScriptExecutorFactory() != null) { builder.setJavaScriptExecutorFactory(spec.getJavaScriptExecutorFactory()); } + if (spec.getReactPackageTurboModuleManagerDelegateBuilder() != null) { + builder.setReactPackageTurboModuleManagerDelegateBuilder( + spec.getReactPackageTurboModuleManagerDelegateBuilder()); + } if (spec.getNativeModuleCallExceptionHandler() != null) { builder.setNativeModuleCallExceptionHandler(spec.getNativeModuleCallExceptionHandler()); } diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java index 7279fa49871..8422eb53729 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java @@ -10,6 +10,7 @@ package com.facebook.react.testing; import android.annotation.SuppressLint; import androidx.annotation.Nullable; import com.facebook.react.ReactPackage; +import com.facebook.react.ReactPackageTurboModuleManagerDelegate; import com.facebook.react.bridge.JavaScriptExecutorFactory; import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.bridge.NativeModule; @@ -35,6 +36,7 @@ public class ReactInstanceSpecForTest { @Nullable private NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler = null; @Nullable private FabricUIManagerFactory mFabricUIManagerFactory = null; @Nullable private JavaScriptExecutorFactory mJavaScriptExecutorFactory = null; + @Nullable private ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder = null; public ReactInstanceSpecForTest addNativeModule(NativeModule module) { mNativeModules.add(module); @@ -77,6 +79,17 @@ public class ReactInstanceSpecForTest { return mFabricUIManagerFactory; } + public ReactInstanceSpecForTest setReactPackageTurboModuleManagerDelegateBuilder( + @Nullable ReactPackageTurboModuleManagerDelegate.Builder builder) { + mTMMDelegateBuilder = builder; + return this; + } + + protected @Nullable ReactPackageTurboModuleManagerDelegate.Builder + getReactPackageTurboModuleManagerDelegateBuilder() { + return mTMMDelegateBuilder; + } + public ReactInstanceSpecForTest addPackages(List reactPackages) { mReactPackages.addAll(reactPackages); return this; diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstrumentationTest.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstrumentationTest.java index 95e1c1dd58d..40699a74e4f 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstrumentationTest.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstrumentationTest.java @@ -12,6 +12,7 @@ import android.test.ActivityInstrumentationTestCase2; import android.view.View; import android.view.ViewGroup; import androidx.annotation.Nullable; +import com.facebook.react.ReactPackageTurboModuleManagerDelegate; import com.facebook.react.bridge.JavaScriptExecutorFactory; import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.bridge.ReactContext; @@ -95,6 +96,11 @@ public abstract class ReactInstrumentationTest return getReactContext().getJSModule(jsInterface); } + protected @Nullable ReactPackageTurboModuleManagerDelegate.Builder + getReactPackageTurboModuleManagerDelegateBuilder() { + return null; + } + /** Override this method to provide extra native modules to be loaded before the app starts */ protected ReactInstanceSpecForTest createReactInstanceSpecForTest() { ReactInstanceSpecForTest reactInstanceSpecForTest = @@ -105,6 +111,8 @@ public abstract class ReactInstrumentationTest if (mFabricUIManagerFactory != null) { reactInstanceSpecForTest.setFabricUIManagerFactory(mFabricUIManagerFactory); } + reactInstanceSpecForTest.setReactPackageTurboModuleManagerDelegateBuilder( + getReactPackageTurboModuleManagerDelegateBuilder()); return reactInstanceSpecForTest; }