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
This commit is contained in:
Christoph Purrer 2022-04-05 19:57:59 -07:00 коммит произвёл Facebook GitHub Bot
Родитель 5534634892
Коммит a196e22bc8
3 изменённых файлов: 25 добавлений и 0 удалений

Просмотреть файл

@ -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());
}

Просмотреть файл

@ -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<ReactPackage> reactPackages) {
mReactPackages.addAll(reactPackages);
return this;

Просмотреть файл

@ -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;
}