diff --git a/app/src/androidTest/java/org/fnives/test/showcase/ui/AuthComposeInstrumentedTest.kt b/app/src/androidTest/java/org/fnives/test/showcase/ui/AuthComposeInstrumentedTest.kt index 82db8f8..ca38f2c 100644 --- a/app/src/androidTest/java/org/fnives/test/showcase/ui/AuthComposeInstrumentedTest.kt +++ b/app/src/androidTest/java/org/fnives/test/showcase/ui/AuthComposeInstrumentedTest.kt @@ -5,8 +5,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import org.fnives.test.showcase.network.mockserver.scenario.auth.AuthScenario import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule +import org.fnives.test.showcase.testutils.idling.anyResourceIdling import org.fnives.test.showcase.ui.compose.ComposeActivity -import org.fnives.test.showcase.ui.compose.TestShowCaseApp import org.junit.Before import org.junit.Rule import org.junit.Test @@ -32,12 +32,10 @@ class AuthComposeInstrumentedTest : KoinTest { val ruleOrder: RuleChain = RuleChain.outerRule(mockServerScenarioSetupTestRule) .around(mainDispatcherTestRule) + @Before fun setup() { robot = ComposeLoginRobot(composeTestRule) - composeTestRule.setContent { - TestShowCaseApp() - } } // @After @@ -51,16 +49,18 @@ class AuthComposeInstrumentedTest : KoinTest { mockServerScenarioSetup.setScenario( AuthScenario.Success(password = "alma", username = "banan") ) + composeTestRule.mainClock.advanceTimeBy(500L) + composeTestRule.mainClock.advanceTimeUntil { anyResourceIdling() } composeTestRule.waitForIdle() robot .setPassword("alma") .setUsername("banan") - .assertPassword("alma") .assertUsername("banan") + .assertPassword("alma") .clickOnLogin() // .assertLoadingBeforeRequests() - mainDispatcherTestRule.advanceUntilIdleWithIdlingResources() +// mainDispatcherTestRule.advanceUntilIdleWithIdlingResources() // robot.assertNavigatedToHome() } diff --git a/app/src/androidTest/java/org/fnives/test/showcase/ui/ComposeLoginRobot.kt b/app/src/androidTest/java/org/fnives/test/showcase/ui/ComposeLoginRobot.kt index 95e9b4a..335daf9 100644 --- a/app/src/androidTest/java/org/fnives/test/showcase/ui/ComposeLoginRobot.kt +++ b/app/src/androidTest/java/org/fnives/test/showcase/ui/ComposeLoginRobot.kt @@ -1,10 +1,7 @@ package org.fnives.test.showcase.ui -import androidx.compose.ui.test.assertTextEquals +import androidx.compose.ui.test.* import androidx.compose.ui.test.junit4.ComposeTestRule -import androidx.compose.ui.test.onNodeWithTag -import androidx.compose.ui.test.performClick -import androidx.compose.ui.test.performTextInput import org.fnives.test.showcase.ui.compose.screen.auth.AuthScreenTag class ComposeLoginRobot( @@ -20,11 +17,11 @@ class ComposeLoginRobot( } fun assertPassword(password: String): ComposeLoginRobot = apply { - composeTestRule.onNodeWithTag(AuthScreenTag.PasswordInput).assertTextEquals(password) + composeTestRule.onNodeWithTag(AuthScreenTag.PasswordInput).assertTextContains(password) } fun assertUsername(username: String): ComposeLoginRobot = apply { - composeTestRule.onNodeWithTag(AuthScreenTag.UsernameInput).assertTextEquals(username) + composeTestRule.onNodeWithTag(AuthScreenTag.UsernameInput).assertTextContains(username) } fun clickOnLogin(): ComposeLoginRobot = apply { diff --git a/app/src/sharedTest/java/org/fnives/test/showcase/testutils/idling/MainDispatcherTestRule.kt b/app/src/sharedTest/java/org/fnives/test/showcase/testutils/idling/MainDispatcherTestRule.kt index 6553624..07d3b74 100644 --- a/app/src/sharedTest/java/org/fnives/test/showcase/testutils/idling/MainDispatcherTestRule.kt +++ b/app/src/sharedTest/java/org/fnives/test/showcase/testutils/idling/MainDispatcherTestRule.kt @@ -22,13 +22,13 @@ class MainDispatcherTestRule : TestRule { @Throws(Throwable::class) override fun evaluate() { val dispatcher = StandardTestDispatcher() - Dispatchers.setMain(dispatcher) +// Dispatchers.setMain(dispatcher) testDispatcher = dispatcher DatabaseInitialization.dispatcher = dispatcher try { base.evaluate() } finally { - Dispatchers.resetMain() +// Dispatchers.resetMain() } } }