Skip to content

Commit c8c855b

Browse files
Bridgeless-context RootViewTest
Summary: Replace the deprecated `BridgeReactContext` + mock `CatalystInstance` setup with a spied `createTestReactApplicationContext`, moving the `UIManagerModule` stub onto the context spy and no-opping `emitDeviceEvent`. Changelog: [Internal] Differential Revision: D126570692
1 parent 1aa551e commit c8c855b

1 file changed

Lines changed: 13 additions & 11 deletions

File tree

  • packages/react-native/ReactAndroid/src/test/java/com/facebook/react

‎packages/react-native/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.kt‎

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,20 @@ import android.view.ViewGroup
1717
import android.view.WindowInsets
1818
import android.view.WindowManager
1919
import com.facebook.react.bridge.Arguments
20-
import com.facebook.react.bridge.BridgeReactContext
21-
import com.facebook.react.bridge.CatalystInstance
22-
import com.facebook.react.bridge.ReactTestHelper
20+
import com.facebook.react.bridge.ReactApplicationContext
21+
import com.facebook.react.bridge.ReactTestHelper.createTestReactApplicationContext
2322
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests
2423
import com.facebook.react.uimanager.DisplayMetricsHolder
2524
import com.facebook.react.uimanager.UIManagerModule
2625
import com.facebook.testutils.shadows.ShadowArguments
26+
import com.facebook.testutils.shadows.ShadowSoLoader
2727
import org.assertj.core.api.Assertions.*
2828
import org.junit.Before
2929
import org.junit.Test
3030
import org.junit.runner.RunWith
31+
import org.mockito.kotlin.any
32+
import org.mockito.kotlin.doNothing
33+
import org.mockito.kotlin.doReturn
3134
import org.mockito.kotlin.mock
3235
import org.mockito.kotlin.spy
3336
import org.mockito.kotlin.times
@@ -38,25 +41,24 @@ import org.robolectric.RobolectricTestRunner
3841
import org.robolectric.RuntimeEnvironment
3942
import org.robolectric.annotation.Config
4043

41-
@Config(shadows = [ShadowArguments::class])
44+
@Config(shadows = [ShadowArguments::class, ShadowSoLoader::class])
4245
@RunWith(RobolectricTestRunner::class)
4346
class RootViewTest {
4447

45-
private lateinit var reactContext: BridgeReactContext
46-
private lateinit var catalystInstanceMock: CatalystInstance
48+
private lateinit var reactContext: ReactApplicationContext
4749

4850
@Before
4951
fun setUp() {
5052
ReactNativeFeatureFlagsForTests.setUp()
5153

52-
catalystInstanceMock = ReactTestHelper.createMockCatalystInstance()
53-
reactContext = spy(BridgeReactContext(RuntimeEnvironment.getApplication()))
54-
reactContext.initializeWithInstance(catalystInstanceMock)
54+
reactContext = spy(createTestReactApplicationContext(RuntimeEnvironment.getApplication()))
55+
doNothing().whenever(reactContext).emitDeviceEvent(any(), any())
5556

5657
DisplayMetricsHolder.initDisplayMetricsIfNotInitialized(reactContext)
5758
val uiManagerModuleMock: UIManagerModule = mock()
58-
whenever(catalystInstanceMock.getNativeModule(UIManagerModule::class.java))
59-
.thenReturn(uiManagerModuleMock)
59+
doReturn(uiManagerModuleMock)
60+
.whenever(reactContext)
61+
.getNativeModule(UIManagerModule::class.java)
6062
}
6163

6264
@Test

0 commit comments

Comments
 (0)