react-native icon indicating copy to clipboard operation
react-native copied to clipboard

☂️ Help us Kotlin-ify React Native tests

Open mdvacca opened this issue 2 years ago • 32 comments

Description

Hey all 👋 We're looking for some community support to help us prepare the codebase of React Native Android to be ready to migrate to Kotlin. In this first stage we are looking for help to migrate tests to Kotlin

How to migrate a test

If you wish to convert one of the tests you should:

  • Verify that the test is not claimed yet.
  • Comment here that you claim a test.
  • Start working on adding Kotlin support for the test.
    • Make sure your environment is set up correctly (see below)
    • Use this PR as inspiration: Convert RootViewTest to Kotlin - #37227
    • Make sure the test run correctly (see below).
    • Your Kotlin code should be formatted with ktfmt (see below).
  • Send the PR for review. Ping @cortinico and @mdvacca for a review.

Setting up your environment

Make sure your environment is set correctly, specifically you need to:

  1. Fork react-native
  2. Clone react-native locally
  3. Run yarn inside your local fork (installation instruction for yarn are here)
  4. Make sure you have Java 11 installed and the Android SDK configured (you can follow our official guide here)

Running your tests

You can run your tests either by using the Android Studio/IntelliJ UI or by invoking the following command in your React Native fork:

./gradlew :packages:react-native:ReactAndroid:test

Code formatting

Please use KtFmt to format Kotlin tests. You can use the web UI to reformat directly from the browser: https://facebook.github.io/ktfmt/

List of tests to migrate

mdvacca avatar Jun 05 '23 22:06 mdvacca

Hey @cortinico, Please assign me react/animated/NativeAnimatedNodeTraversalTest.java.

ankit-tailor avatar Jun 06 '23 08:06 ankit-tailor

Hey @cortinico, Please assign me react/animated/NativeAnimatedNodeTraversalTest.java.

Done 👍

cortinico avatar Jun 06 '23 09:06 cortinico

Hey @cortinico, you can assign me to react/modules/deviceinfo/DeviceInfoModuleTest.java

okwasniewski avatar Jun 06 '23 09:06 okwasniewski

Hey @cortinico , can you assign me react/modules/clipboard/ClipboardModuleTest.java ?

hurali97 avatar Jun 06 '23 09:06 hurali97

Hey @cortinico , can you assign me react/fabric/events/TouchEventDispatchTest.java

MohamedRejeb avatar Jun 06 '23 09:06 MohamedRejeb

Hey @cortinico, can you assign me to this one react/animated/NativeAnimatedInterpolationTest.java?

fabioh8010 avatar Jun 06 '23 09:06 fabioh8010

hey @cortinico , can you assign me to this one react/util/JSStackTraceTest.java

aymane-missouri-nw avatar Jun 06 '23 09:06 aymane-missouri-nw

Hey @cortinico , can you assign me to this one react/modules/network/HeaderUtilTest.java

TheMissouri avatar Jun 06 '23 10:06 TheMissouri

Hey @cortinico , I'd like to take this one /react/modules/share/ShareModuleTest.java please assign it to me

siddarthkay avatar Jun 06 '23 10:06 siddarthkay

Hey @cortinico, assign me to react/modules/blob/BlobModuleTest.java

mateusz1913 avatar Jun 06 '23 11:06 mateusz1913

Hi @cortinico, I'd like to work on this one : react/fabric/interop/FakeEventDispatcher.java

tarunrajput avatar Jun 06 '23 11:06 tarunrajput

Hi @cortinico, can you assign react/modules/network/ReactCookieJarContainerTest.java to me?

pk-218 avatar Jun 06 '23 11:06 pk-218

Hi @cortinico, can you assign this one to me? react/modules/camera/ImageStoreManagerTest.java

megatunger avatar Jun 06 '23 11:06 megatunger

Awesome stuff, I've assigned all the tasks that got claimed so far. Folks that got a test class assigned, can start working on it.

cortinico avatar Jun 06 '23 12:06 cortinico

hey @cortinico, can you assign this one to me? react/modules/network/ProgressiveStringDecoderTest.java

RyanGst avatar Jun 06 '23 12:06 RyanGst

hey @cortinico , could you assign me this one react/modules/dialog/DialogModuleTest.java

I'll try to help as much as possible :)

fathonyfath avatar Jun 06 '23 13:06 fathonyfath

Hey @cortinico, please assign me react/fabric/interop/InteropEventEmitterTest.java

jasokolowska avatar Jun 06 '23 14:06 jasokolowska

Hi @cortinico, I'd like to pick up this one react/uimanager/layoutanimation/InterpolatorTypeTest.java

Janjs avatar Jun 06 '23 14:06 Janjs

Hi @cortinico, Please assign me react/bridge/InstanceHandleHelper.java

arslandogar avatar Jun 06 '23 14:06 arslandogar

Hi @cortinico! Could you please assign react/devsupport/StackTraceHelperTest.java to me? 🙂

koko57 avatar Jun 06 '23 14:06 koko57

Hi @cortinico! Please assign react/uimanager/UIManagerModuleConstantsHelperTest.java to me.

ryanlntn avatar Jun 06 '23 15:06 ryanlntn

Thanks everyone! I've assigned all the tasks that got claimed so far. Folks that got a test class assigned, can start working on it.

mdvacca avatar Jun 06 '23 16:06 mdvacca

Hey @cortinico assign me the remaining ones please. common/logging/FakeLoggingDelegate.java react/CompositeReactPackageTest.java

MohamedRejeb avatar Jun 06 '23 16:06 MohamedRejeb

Hey @cortinico assign me the remaining ones please.

Hey @MohamedRejeb, to give everyone a chance to contribute, we're not allowing more than 2 files per person. I've assigned you FakeLoggingDelegate.java and CompositeReactPackageTest.java

cortinico avatar Jun 06 '23 17:06 cortinico

@cortinico Can I get https://github.com/facebook/react-native/tree/main/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/interop/FakeRCTEventEmitter.java?

dcangulo avatar Jun 06 '23 17:06 dcangulo

@cortinico Since you allow at most 2 files and no one else commenting, can I get react/bridge/interop/InteropModuleRegistryTest.java?

dcangulo avatar Jun 06 '23 18:06 dcangulo

Hi @cortinico , can I also get the last one react/bridge/FallbackJSBundleLoaderTest.java? Will start working on the 2 files in a few minutes.

fabioh8010 avatar Jun 06 '23 18:06 fabioh8010