Hi folks, I am trying to add tests for compose nav...
# compose-android
a
Hi folks, I am trying to add tests for compose navigation. I am unable to assert the screen I navigate to after click event. More details in thread.
Test code
Copy code
@Test
fun settingsScreenTest() = runTest {
        homeScreen.assertIsDisplayed()

        homeAppbarSettings.performClick()
        Thread.sleep(2000)
        composeTestRule.awaitIdle()

        testNavHostController.assertCurrentRouteName(
            expectedRouteName = Screen.Settings.route,
        )
}
I tried adding
Thread.sleep(2000)
&
composeTestRule.awaitIdle()
. It does not work in any case.
Error
Copy code
expected:<[settings]> but was:<[home]>
Scenario, In home screen, I have an appbar with an icon to navigate to settings screen on click event.
Test setup
Copy code
@HiltAndroidTest
class ComposeNavigationTest {
    @get:Rule(order = 0)
    var hiltRule = HiltAndroidRule(this)

    @get:Rule(order = 1)
    val composeTestRule = createAndroidComposeRule<HiltComponentActivity>()

    private lateinit var testNavHostController: TestNavHostController

    @Before
    fun setUp() {
        hiltRule.inject()
        initNodes()

        composeTestRule.setContent {
            testNavHostController = TestNavHostController(
                context = LocalContext.current,
            ).apply {
                navigatorProvider.addNavigator(
                    navigator = ComposeNavigator(),
                )
            }
            MyNavHost(
                navHostController = testNavHostController,
            )
        }
    }
  @Test 
  fun testCode() {}
}
The
HiltComponentActivity
is added in the same way as Now In Android.