From a649100299dcdeb634c488bfacc2f69f84c63d63 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Wed, 9 Apr 2025 10:41:50 -0700 Subject: [PATCH] Use ReactNativeFeatureFlagsForTests in uimanager tests (#50594) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50594 Some tests are failing due to unsatisfied error when looking for C++ classes of feature flags, we fix this by calling ReactNativeFeatureFlagsForTests.setup() changelog: [internal] internal Reviewed By: yungsters, sbuggay Differential Revision: D72721786 fbshipit-source-id: c41c05428b1f99db9b03bb67cd9ddc47ebec84b5 --- .../com/facebook/react/uimanager/BorderRadiusStyleTest.kt | 7 +++++++ .../facebook/react/uimanager/JSPointerDispatcherTest.kt | 2 ++ .../com/facebook/react/uimanager/MatrixMathHelperTest.kt | 7 +++++++ .../com/facebook/react/uimanager/OnLayoutEventTest.kt | 2 ++ .../react/uimanager/ReactPropAnnotationSetterSpecTest.kt | 7 +++++++ .../react/uimanager/ReactPropAnnotationSetterTest.kt | 2 ++ .../facebook/react/uimanager/ReactPropConstantsTest.kt | 7 +++++++ .../react/uimanager/ReactPropForShadowNodeSetterTest.kt | 2 ++ .../react/uimanager/ReactPropForShadowNodeSpecTest.kt | 2 ++ .../facebook/react/uimanager/SimpleViewPropertyTest.kt | 2 ++ .../react/uimanager/UIManagerModuleConstantsHelperTest.kt | 8 ++++++++ 11 files changed, 48 insertions(+) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/BorderRadiusStyleTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/BorderRadiusStyleTest.kt index 12708fa571e..4d26ec18c06 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/BorderRadiusStyleTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/BorderRadiusStyleTest.kt @@ -8,11 +8,13 @@ package com.facebook.react.uimanager import android.content.Context +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.uimanager.style.BorderRadiusProp import com.facebook.react.uimanager.style.BorderRadiusStyle import com.facebook.react.uimanager.style.ComputedBorderRadiusProp import com.facebook.react.uimanager.style.CornerRadii import org.assertj.core.api.Assertions.* +import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner @@ -67,6 +69,11 @@ class BorderRadiusStyleTest { } } + @Before + fun setup() { + ReactNativeFeatureFlagsForTests.setUp() + } + @Test fun testCorrectPriorityRTL() { setContextLeftAndRightSwap(ctx, true) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/JSPointerDispatcherTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/JSPointerDispatcherTest.kt index 249c6825ccc..9c464926be6 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/JSPointerDispatcherTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/JSPointerDispatcherTest.kt @@ -15,6 +15,7 @@ import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.uimanager.events.Event import com.facebook.react.uimanager.events.EventDispatcher import com.facebook.react.uimanager.events.PointerEventHelper @@ -42,6 +43,7 @@ class JSPointerDispatcherTest { @Before fun setupViewHierarchy() { + ReactNativeFeatureFlagsForTests.setUp() val ctx: Context = RuntimeEnvironment.getApplication() root = LinearLayout(ctx) val childView = TextView(ctx) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/MatrixMathHelperTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/MatrixMathHelperTest.kt index b6a9e6d04ee..c337fdda23c 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/MatrixMathHelperTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/MatrixMathHelperTest.kt @@ -7,15 +7,22 @@ package com.facebook.react.uimanager +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.uimanager.MatrixMathHelper.MatrixDecompositionContext import kotlin.math.cos import kotlin.math.sin import org.assertj.core.api.Assertions.assertThat +import org.junit.Before import org.junit.Test /** Test for [MatrixMathHelper] */ class MatrixMathHelperTest { + @Before + fun setup() { + ReactNativeFeatureFlagsForTests.setUp() + } + @Test fun testDecomposing4x4MatrixToProduceAccurateZaxisAngles() { val ctx = MatrixDecompositionContext() diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/OnLayoutEventTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/OnLayoutEventTest.kt index fb02e505cb6..f00781e3600 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/OnLayoutEventTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/OnLayoutEventTest.kt @@ -8,6 +8,7 @@ package com.facebook.react.uimanager import com.facebook.react.common.SystemClock +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import org.assertj.core.api.Assertions.assertThat import org.junit.After import org.junit.Before @@ -23,6 +24,7 @@ class OnLayoutEventTest { @Before fun setup() { + ReactNativeFeatureFlagsForTests.setUp() val ts = SystemClock.uptimeMillis() systemClock = mockStatic(SystemClock::class.java) systemClock.`when` { SystemClock.uptimeMillis() }.thenReturn(ts) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterSpecTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterSpecTest.kt index df3d23918a8..cbcd0820dc0 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterSpecTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterSpecTest.kt @@ -8,9 +8,11 @@ package com.facebook.react.uimanager import android.view.View +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.uimanager.annotations.ReactPropGroup import java.util.Date +import org.junit.Before import org.junit.Test /** Test that verifies that spec of methods annotated with @ReactProp is correct */ @@ -31,6 +33,11 @@ class ReactPropAnnotationSetterSpecTest { override fun updateExtraData(root: View, extraData: Any) = Unit } + @Before + fun setup() { + ReactNativeFeatureFlagsForTests.setUp() + } + @Test(expected = RuntimeException::class) fun testMethodWithWrongNumberOfParams() { object : BaseViewManager() { diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterTest.kt index 8c39f9f9579..8e7069e25bf 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropAnnotationSetterTest.kt @@ -13,6 +13,7 @@ import com.facebook.react.bridge.JavaOnlyArray import com.facebook.react.bridge.JavaOnlyMap import com.facebook.react.bridge.ReadableArray import com.facebook.react.bridge.ReadableMap +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.uimanager.annotations.ReactPropGroup import org.junit.Before @@ -172,6 +173,7 @@ class ReactPropAnnotationSetterTest { @Before fun setup() { + ReactNativeFeatureFlagsForTests.setUp() updatesReceiverMock = Mockito.mock(ViewManagerUpdatesReceiver::class.java) viewManager = ViewManagerUnderTest(updatesReceiverMock) targetView = View(RuntimeEnvironment.getApplication()) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropConstantsTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropConstantsTest.kt index 5be860c8663..e2b2f5865ed 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropConstantsTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropConstantsTest.kt @@ -11,9 +11,11 @@ import android.view.View import com.facebook.react.bridge.BridgeReactContext import com.facebook.react.bridge.ReadableArray import com.facebook.react.bridge.ReadableMap +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.uimanager.annotations.ReactPropGroup import org.assertj.core.api.Assertions +import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner @@ -84,6 +86,11 @@ class ReactPropConstantsTest { fun customIntGroupProp(v: View?, index: Int, value: Int?) = Unit } + @Before + fun setup() { + ReactNativeFeatureFlagsForTests.setUp() + } + @Test fun testNativePropsIncludeCorrectTypes() { val viewManagers = listOf>(ViewManagerUnderTest()) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSetterTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSetterTest.kt index efcdcd7cc2f..1906d6668f6 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSetterTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSetterTest.kt @@ -11,6 +11,7 @@ import com.facebook.react.bridge.BridgeReactContext import com.facebook.react.bridge.JavaOnlyMap import com.facebook.react.bridge.ReadableArray import com.facebook.react.bridge.ReadableMap +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.uimanager.annotations.ReactPropGroup import com.facebook.testutils.shadows.ShadowSoLoader @@ -101,6 +102,7 @@ class ReactPropForShadowNodeSetterTest { @Before fun setup() { + ReactNativeFeatureFlagsForTests.setUp() yogaNodeFactory = mockStatic(YogaNodeFactory::class.java) yogaNodeFactory .`when` { YogaNodeFactory.create(any()) } diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSpecTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSpecTest.kt index e0b0f81ff84..1277517cf78 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSpecTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/ReactPropForShadowNodeSpecTest.kt @@ -8,6 +8,7 @@ package com.facebook.react.uimanager import android.view.View +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.uimanager.annotations.ReactProp import com.facebook.react.uimanager.annotations.ReactPropGroup import com.facebook.testutils.shadows.ShadowSoLoader @@ -39,6 +40,7 @@ class ReactPropForShadowNodeSpecTest { @Before fun setup() { + ReactNativeFeatureFlagsForTests.setUp() yogaNodeFactory = mockStatic(YogaNodeFactory::class.java) yogaNodeFactory .`when` { YogaNodeFactory.create(any()) } diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/SimpleViewPropertyTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/SimpleViewPropertyTest.kt index f6922883f50..c844c6824f4 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/SimpleViewPropertyTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/SimpleViewPropertyTest.kt @@ -17,6 +17,7 @@ import com.facebook.react.bridge.CatalystInstance import com.facebook.react.bridge.JavaOnlyMap import com.facebook.react.bridge.ReactTestHelper.createMockCatalystInstance import com.facebook.react.bridge.ReadableMap +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import com.facebook.react.touch.JSResponderHandler import com.facebook.react.uimanager.annotations.ReactProp import org.assertj.core.api.Assertions @@ -55,6 +56,7 @@ class SimpleViewPropertyTest { @Before fun setup() { + ReactNativeFeatureFlagsForTests.setUp() context = BridgeReactContext(RuntimeEnvironment.getApplication()) catalystInstanceMock = createMockCatalystInstance() context.initializeWithInstance(catalystInstanceMock) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelperTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelperTest.kt index fbb5f43872e..87712f83c1b 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelperTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelperTest.kt @@ -7,10 +7,18 @@ package com.facebook.react.uimanager +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests import org.assertj.core.api.Assertions.assertThat +import org.junit.Before import org.junit.Test class UIManagerModuleConstantsHelperTest { + + @Before + fun setup() { + ReactNativeFeatureFlagsForTests.setUp() + } + @Test fun normalizeEventTypes_withNull_doesNothing() { assertThat(UIManagerModuleConstantsHelper.normalizeEventTypes(null)).isNull()