diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java deleted file mode 100644 index 717b689a2b0..00000000000 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.bridge; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import com.facebook.react.bridge.queue.MessageQueueThreadSpec; -import com.facebook.react.bridge.queue.QueueThreadExceptionHandler; -import com.facebook.react.bridge.queue.ReactQueueConfiguration; -import com.facebook.react.bridge.queue.ReactQueueConfigurationImpl; -import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec; -import com.facebook.react.uimanager.UIManagerModule; -import org.robolectric.RuntimeEnvironment; - -/** Utility for creating pre-configured instances of core react components for tests. */ -public class ReactTestHelper { - - /** - * @return a ReactApplicationContext that has a CatalystInstance mock returned by {@link - * #createMockCatalystInstance} - */ - public static ReactApplicationContext createCatalystContextForTest() { - ReactApplicationContext context = new ReactApplicationContext(RuntimeEnvironment.application); - context.initializeWithInstance(createMockCatalystInstance()); - return context; - } - - /** @return a CatalystInstance mock that has a default working ReactQueueConfiguration. */ - public static CatalystInstance createMockCatalystInstance() { - ReactQueueConfigurationSpec spec = - ReactQueueConfigurationSpec.builder() - .setJSQueueThreadSpec(MessageQueueThreadSpec.mainThreadSpec()) - .setNativeModulesQueueThreadSpec(MessageQueueThreadSpec.mainThreadSpec()) - .build(); - ReactQueueConfiguration ReactQueueConfiguration = - ReactQueueConfigurationImpl.create( - spec, - new QueueThreadExceptionHandler() { - @Override - public void handleException(Exception e) { - throw new RuntimeException(e); - } - }); - - CatalystInstance reactInstance = mock(CatalystInstance.class); - when(reactInstance.getReactQueueConfiguration()).thenReturn(ReactQueueConfiguration); - when(reactInstance.getNativeModule(UIManagerModule.class)) - .thenReturn(mock(UIManagerModule.class)); - when(reactInstance.isDestroyed()).thenReturn(false); - - return reactInstance; - } -} diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.kt new file mode 100644 index 00000000000..18a49fb04a0 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.kt @@ -0,0 +1,48 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.bridge + +import com.facebook.react.bridge.queue.MessageQueueThreadSpec +import com.facebook.react.bridge.queue.ReactQueueConfiguration +import com.facebook.react.bridge.queue.ReactQueueConfigurationImpl +import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec +import com.facebook.react.uimanager.UIManagerModule +import org.mockito.Mockito.mock +import org.mockito.Mockito.`when` as whenever +import org.robolectric.RuntimeEnvironment + +/** Utility for creating pre-configured instances of core react components for tests. */ +object ReactTestHelper { + /** + * @return a ReactApplicationContext that has a CatalystInstance mock returned by + * [createMockCatalystInstance] + */ + @JvmStatic + fun createCatalystContextForTest(): ReactApplicationContext = + ReactApplicationContext(RuntimeEnvironment.application).apply { + initializeWithInstance(createMockCatalystInstance()) + } + + /** @return a CatalystInstance mock that has a default working ReactQueueConfiguration. */ + @JvmStatic + fun createMockCatalystInstance(): CatalystInstance { + val spec: ReactQueueConfigurationSpec = + ReactQueueConfigurationSpec.builder() + .setJSQueueThreadSpec(MessageQueueThreadSpec.mainThreadSpec()) + .setNativeModulesQueueThreadSpec(MessageQueueThreadSpec.mainThreadSpec()) + .build() + val reactQueueConfiguration: ReactQueueConfiguration = + ReactQueueConfigurationImpl.create(spec) { e -> throw RuntimeException(e) } + val reactInstance: CatalystInstance = mock(CatalystInstance::class.java) + whenever(reactInstance.getReactQueueConfiguration()).thenReturn(reactQueueConfiguration) + whenever(reactInstance.getNativeModule(UIManagerModule::class.java)) + .thenReturn(mock(UIManagerModule::class.java)) + whenever(reactInstance.isDestroyed()).thenReturn(false) + return reactInstance + } +}