Skip to content

Commit e92da16

Browse files
cortinicofacebook-github-bot
authored andcommitted
Migrate ClipboardModuleTest to use BridgelessReactContext (#53131)
Summary: This test was still using the old `BridgeReactContext`, I'm migrating it to `BridgelessReactContext`. ## Changelog: [INTERNAL] - Pull Request resolved: #53131 Test Plan: CI Reviewed By: mdvacca Differential Revision: D79801564 Pulled By: cortinico fbshipit-source-id: 9bb96185505703a773597aeadfeeaeeb194532de
1 parent ae5df7e commit e92da16

2 files changed

Lines changed: 38 additions & 7 deletions

File tree

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,18 @@
1111

1212
package com.facebook.react.bridge
1313

14+
import android.app.Application
1415
import com.facebook.react.bridge.queue.MessageQueueThreadSpec
1516
import com.facebook.react.bridge.queue.ReactQueueConfiguration
1617
import com.facebook.react.bridge.queue.ReactQueueConfigurationImpl
1718
import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec
19+
import com.facebook.react.common.annotations.UnstableReactNativeAPI
20+
import com.facebook.react.runtime.BridgelessReactContext
21+
import com.facebook.react.runtime.ReactHostImpl
22+
import com.facebook.react.runtime.internal.bolts.Task
1823
import com.facebook.react.uimanager.UIManagerModule
1924
import org.mockito.kotlin.mock
25+
import org.mockito.kotlin.spy
2026
import org.mockito.kotlin.whenever
2127
import org.robolectric.RuntimeEnvironment
2228

@@ -49,4 +55,20 @@ object ReactTestHelper {
4955
whenever(reactInstance.isDestroyed).thenReturn(false)
5056
return reactInstance
5157
}
58+
59+
@OptIn(UnstableReactNativeAPI::class)
60+
fun createTestReactApplicationContext(application: Application): ReactApplicationContext {
61+
val reactHost =
62+
spy(
63+
ReactHostImpl(
64+
RuntimeEnvironment.getApplication(),
65+
mock(),
66+
mock(),
67+
Task.Companion.IMMEDIATE_EXECUTOR,
68+
Task.Companion.IMMEDIATE_EXECUTOR,
69+
false /* allowPackagerServerAccess */,
70+
false /* useDevSupport */,
71+
))
72+
return BridgelessReactContext(application, reactHost)
73+
}
5274
}

packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.kt

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,45 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
@file:Suppress("DEPRECATION")
9-
108
package com.facebook.react.modules.clipboard
119

12-
import android.annotation.SuppressLint
1310
import android.content.ClipboardManager
1411
import android.content.Context
15-
import com.facebook.react.bridge.BridgeReactContext
12+
import com.facebook.react.bridge.ReactTestHelper.createTestReactApplicationContext
13+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
14+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests
15+
import com.facebook.testutils.shadows.ShadowSoLoader
1616
import org.assertj.core.api.Assertions.assertThat
17+
import org.junit.After
1718
import org.junit.Before
1819
import org.junit.Test
1920
import org.junit.runner.RunWith
2021
import org.robolectric.RobolectricTestRunner
2122
import org.robolectric.RuntimeEnvironment
23+
import org.robolectric.annotation.Config
2224

23-
@Suppress("DEPRECATION")
24-
@SuppressLint("ClipboardManager", "DeprecatedClass")
2525
@RunWith(RobolectricTestRunner::class)
26+
@Config(shadows = [ShadowSoLoader::class])
2627
class ClipboardModuleTest {
2728
private lateinit var clipboardModule: ClipboardModule
2829
private lateinit var clipboardManager: ClipboardManager
2930

3031
@Before
3132
fun setUp() {
32-
clipboardModule = ClipboardModule(BridgeReactContext(RuntimeEnvironment.getApplication()))
33+
ReactNativeFeatureFlagsForTests.setUp()
34+
clipboardModule =
35+
ClipboardModule(createTestReactApplicationContext(RuntimeEnvironment.getApplication()))
3336
clipboardManager =
3437
RuntimeEnvironment.getApplication().getSystemService(Context.CLIPBOARD_SERVICE)
3538
as ClipboardManager
3639
}
3740

41+
@After
42+
fun tearDown() {
43+
ReactNativeFeatureFlags.dangerouslyReset()
44+
}
45+
46+
@Suppress("DEPRECATION")
3847
@Test
3948
fun testSetString() {
4049
clipboardModule.setString(TEST_CONTENT)

0 commit comments

Comments
 (0)