Test lifecycle evetns in ReactHost (#37985)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/37985

Test lifecycle evetns in ReactHost

changelog: [internal] internal

Reviewed By: cortinico

Differential Revision: D46814334

fbshipit-source-id: 888574c3099ddceec4f7f0aaaf14b883b1a4dc0b
This commit is contained in:
David Vacca
2023-06-26 16:58:14 -07:00
committed by Facebook GitHub Bot
parent 015e7cbd93
commit add10419b6
@@ -26,6 +26,7 @@ import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.UIManager;
import com.facebook.react.bridgeless.internal.bolts.Task;
import com.facebook.react.bridgeless.internal.bolts.TaskCompletionSource;
import com.facebook.react.common.LifecycleState;
import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
import com.facebook.react.fabric.ComponentFactory;
import com.facebook.react.uimanager.events.BlackHoleEventDispatcher;
@@ -168,6 +169,20 @@ public class ReactHostTest {
assertThat(mReactHost.getCurrentReactContext()).isNotEqualTo(oldReactContext);
}
@Test
public void testLifecycleStateChanges() throws Exception {
statAndTestReactHost();
assertThat(mReactHost.isInstanceInitialized()).isTrue();
assertThat(mReactHost.getLifecycleState()).isEqualTo(LifecycleState.BEFORE_CREATE);
mReactHost.onHostResume(mActivityController.get());
assertThat(mReactHost.getLifecycleState()).isEqualTo(LifecycleState.RESUMED);
mReactHost.onHostPause(mActivityController.get());
assertThat(mReactHost.getLifecycleState()).isEqualTo(LifecycleState.BEFORE_RESUME);
mReactHost.onHostDestroy(mActivityController.get());
assertThat(mReactHost.getLifecycleState()).isEqualTo(LifecycleState.BEFORE_CREATE);
}
private static <T> void waitForTaskUIThread(Task<T> task) throws InterruptedException {
boolean isTaskCompleted = false;
while (!isTaskCompleted) {