From 41fc4b4b47125770a8599e22ce90821e38cba1ba Mon Sep 17 00:00:00 2001 From: Aish Date: Mon, 17 Feb 2025 16:00:02 -0500 Subject: [PATCH] Fixing tests --- .../reference/demo/test/MainActivityTest.kt | 16 ++++++++-------- .../demo/test/assets/action/ActionUITest.kt | 6 +++++- .../demo/test/assets/info/InfoUITest.kt | 3 --- .../reference/demo/test/base/AssetUITest.kt | 1 + .../reference/assets/action/ActionTest.kt | 6 ++++-- .../android/reference/assets/info/InfoTest.kt | 4 +--- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/MainActivityTest.kt b/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/MainActivityTest.kt index abce364e8..831d2143a 100644 --- a/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/MainActivityTest.kt +++ b/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/MainActivityTest.kt @@ -1,7 +1,8 @@ package com.intuit.playerui.android.reference.demo.test -import androidx.test.espresso.Espresso.onView -import androidx.test.espresso.action.ViewActions.click +import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withText @@ -9,7 +10,6 @@ import androidx.test.ext.junit.rules.activityScenarioRule import com.intuit.playerui.android.reference.demo.test.base.PerformanceTest import com.intuit.playerui.android.reference.demo.test.base.waitForViewInRoot import com.intuit.playerui.android.reference.demo.ui.main.MainActivity -import org.hamcrest.Matchers.allOf import org.junit.Rule import org.junit.Test @@ -17,15 +17,15 @@ class MainActivityTest : PerformanceTest { @get:Rule override val activityRule = activityScenarioRule() + @get:Rule + val androidComposeRule = createAndroidComposeRule() + @Test fun verifyDefault() { waitForViewInRoot(withText("Android Reference Assets")) .check(matches(isDisplayed())) - onView( - allOf( - withText("Random Mock"), - ), - ).perform(click()) + androidComposeRule.onNodeWithTag("action") + .performClick() } } diff --git a/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/assets/action/ActionUITest.kt b/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/assets/action/ActionUITest.kt index 6864d1064..1c87834e7 100644 --- a/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/assets/action/ActionUITest.kt +++ b/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/assets/action/ActionUITest.kt @@ -9,6 +9,7 @@ import androidx.test.espresso.matcher.ViewMatchers.withText import com.intuit.playerui.android.reference.demo.test.base.ComposeUITest import com.intuit.playerui.android.reference.demo.test.base.shouldBePlayerState import com.intuit.playerui.android.reference.demo.test.base.waitForViewInRoot +import com.intuit.playerui.core.player.state.CompletedState import com.intuit.playerui.core.player.state.ErrorState import com.intuit.playerui.core.player.state.InProgressState import com.intuit.playerui.core.player.state.dataModel @@ -45,6 +46,9 @@ class ActionUITest : ComposeUITest("action") { .check(matches(isDisplayed())) androidComposeRule.onAllNodesWithTag("action").get(0) .performClick() + player.state.shouldBePlayerState { + assertEquals("done", endState.outcome) + } } @Test @@ -56,7 +60,7 @@ class ActionUITest : ComposeUITest("action") { androidComposeRule.onAllNodesWithTag("action").get(1) .performClick() delay(2000) - currentState.shouldBePlayerState { + player.state.shouldBePlayerState { assertEquals("Error: Unclosed brace after \"foo.bar..}\" at character 12", error.message) } } diff --git a/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/assets/info/InfoUITest.kt b/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/assets/info/InfoUITest.kt index 2c54d6b47..28c61592c 100644 --- a/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/assets/info/InfoUITest.kt +++ b/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/assets/info/InfoUITest.kt @@ -2,7 +2,6 @@ package com.intuit.playerui.android.reference.demo.test.assets.info import androidx.compose.ui.test.onAllNodesWithTag import androidx.compose.ui.test.performClick -import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withText @@ -27,8 +26,6 @@ class InfoUITest : ComposeUITest("info") { verifyView(view) action?.let { - onView(withText(action.name)) - .check(matches(isDisplayed())) androidComposeRule.onAllNodesWithTag("action").get(index ?: 0) .performClick() } diff --git a/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/base/AssetUITest.kt b/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/base/AssetUITest.kt index b01021892..5562cc468 100644 --- a/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/base/AssetUITest.kt +++ b/android/demo/src/androidTest/java/com/intuit/playerui/android/reference/demo/test/base/AssetUITest.kt @@ -25,6 +25,7 @@ abstract class AssetUITest(val group: String? = null) { protected lateinit var viewModel: MainViewModel protected lateinit var playerViewModel: DemoPlayerViewModel + protected val player get() = playerViewModel.player protected val currentState: PlayerFlowState? get() = playerViewModel.playerFlowState.value diff --git a/plugins/reference-assets/android/src/androidTest/java/com/intuit/playerui/android/reference/assets/action/ActionTest.kt b/plugins/reference-assets/android/src/androidTest/java/com/intuit/playerui/android/reference/assets/action/ActionTest.kt index e1d2f769e..442697bcc 100644 --- a/plugins/reference-assets/android/src/androidTest/java/com/intuit/playerui/android/reference/assets/action/ActionTest.kt +++ b/plugins/reference-assets/android/src/androidTest/java/com/intuit/playerui/android/reference/assets/action/ActionTest.kt @@ -10,6 +10,7 @@ import com.intuit.playerui.core.player.state.CompletedState import com.intuit.playerui.core.player.state.ErrorState import com.intuit.playerui.core.player.state.InProgressState import com.intuit.playerui.core.player.state.dataModel +import kotlinx.coroutines.delay import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals import org.junit.Test @@ -45,9 +46,10 @@ class ActionTest : AssetTest("action") { data.run() } } + delay(1000) } - currentState.shouldBePlayerState { + player.state.shouldBePlayerState { assertEquals("done", endState.outcome) } } @@ -69,7 +71,7 @@ class ActionTest : AssetTest("action") { } } - currentState.shouldBePlayerState { + player.state.shouldBePlayerState { assertEquals("Error: Unclosed brace after \"foo.bar..}\" at character 12", error.message) } } diff --git a/plugins/reference-assets/android/src/androidTest/java/com/intuit/playerui/android/reference/assets/info/InfoTest.kt b/plugins/reference-assets/android/src/androidTest/java/com/intuit/playerui/android/reference/assets/info/InfoTest.kt index 7a3812f92..61a36d153 100644 --- a/plugins/reference-assets/android/src/androidTest/java/com/intuit/playerui/android/reference/assets/info/InfoTest.kt +++ b/plugins/reference-assets/android/src/androidTest/java/com/intuit/playerui/android/reference/assets/info/InfoTest.kt @@ -5,7 +5,6 @@ import android.widget.TextView import androidx.core.view.get import com.intuit.playerui.android.reference.assets.R import com.intuit.playerui.android.reference.assets.action.Action -import com.intuit.playerui.android.reference.assets.text.Text import com.intuit.playerui.android.testutils.asset.AssetTest import com.intuit.playerui.android.testutils.asset.shouldBeAsset import com.intuit.playerui.android.testutils.asset.shouldBePlayerState @@ -32,13 +31,12 @@ class InfoTest : AssetTest("info") { runTest { currentAssetTree.shouldBeAsset { - val infoActions = data.actions + val infoActions = getData().actions action?.let { val buttonOrdinal = if (action.ordinal != 1) 0 else action.ordinal infoActions[buttonOrdinal].shouldBeAsset { val data = getData() - data.label.shouldBeAsset() data.run() } }