From de786cddbc3572e9d455fdb3bfa956a463a02097 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Mon, 26 Jun 2023 16:58:14 -0700 Subject: [PATCH] Create test that verifies ReactHost.destroy() works as expected (#37983) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/37983 Create test ReactHostTest.testDestroy() that verifies ReactHost.destroy() works as expected changelog: [internal] internal Reviewed By: cortinico Differential Revision: D46813611 fbshipit-source-id: 65432dae1b69412af3dec23265f57f73d49cca68 --- .../facebook/react/bridgeless/ReactHostTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridgeless/ReactHostTest.java b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridgeless/ReactHostTest.java index aa520036f52..77913e95429 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridgeless/ReactHostTest.java +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridgeless/ReactHostTest.java @@ -124,6 +124,10 @@ public class ReactHostTest { @Test public void testStart() throws Exception { + statAndTestReactHost(); + } + + private void statAndTestReactHost() throws Exception { TaskCompletionSource taskCompletionSource = new TaskCompletionSource<>(); taskCompletionSource.setResult(true); whenNew(TaskCompletionSource.class).withAnyArguments().thenReturn(taskCompletionSource); @@ -137,6 +141,15 @@ public class ReactHostTest { verify(mMemoryPressureRouter).addMemoryPressureListener((MemoryPressureListener) any()); } + @Test + public void testDestroy() throws Exception { + statAndTestReactHost(); + + waitForTaskUIThread(mReactHost.destroy("Destroying from testing infra", null)); + assertThat(mReactHost.isInstanceInitialized()).isFalse(); + assertThat(mReactHost.getCurrentReactContext()).isNull(); + } + private static void waitForTaskUIThread(Task task) throws InterruptedException { boolean isTaskCompleted = false; while (!isTaskCompleted) {