From c7941ee1f7187d7ab8e3990c69cd6f65abbbf5db Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 3 Feb 2026 14:53:43 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/screens/DialogPageObject.kt | 10 +++++++ .../com/tangem/screens/MarketsPageObject.kt | 28 ++++--------------- .../tests/balance/TotalBalanceUpdateTest.kt | 16 +++++++---- .../tangem/features/feed/ui/feed/FeedList.kt | 5 +++- 4 files changed, 29 insertions(+), 30 deletions(-) diff --git a/app/src/androidTest/kotlin/com/tangem/screens/DialogPageObject.kt b/app/src/androidTest/kotlin/com/tangem/screens/DialogPageObject.kt index 7f6402803d..39fc2fd1fc 100644 --- a/app/src/androidTest/kotlin/com/tangem/screens/DialogPageObject.kt +++ b/app/src/androidTest/kotlin/com/tangem/screens/DialogPageObject.kt @@ -45,6 +45,16 @@ class DialogPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) : hasText(getResourceString(R.string.common_continue)) } + val addButton: KNode = child { + hasTestTag(BaseButtonTestTags.BUTTON) + hasText(getResourceString(R.string.common_add)) + } + + val laterButton: KNode = child { + hasTestTag(BaseButtonTestTags.BUTTON) + hasText(getResourceString(R.string.common_later)) + } + val okButton: KNode = child { hasTestTag(BaseButtonTestTags.BUTTON) hasText(getResourceString(R.string.common_ok)) diff --git a/app/src/androidTest/kotlin/com/tangem/screens/MarketsPageObject.kt b/app/src/androidTest/kotlin/com/tangem/screens/MarketsPageObject.kt index cad5a0cdea..ff3a31ce16 100644 --- a/app/src/androidTest/kotlin/com/tangem/screens/MarketsPageObject.kt +++ b/app/src/androidTest/kotlin/com/tangem/screens/MarketsPageObject.kt @@ -1,47 +1,29 @@ package com.tangem.screens -import androidx.compose.ui.test.SemanticsMatcher import androidx.compose.ui.test.SemanticsNodeInteractionsProvider import com.tangem.common.BaseTestCase import com.tangem.common.constants.TestConstants.MARKETS_MAIN_NETWORK_SUFFIX -import com.tangem.common.utils.LazyListItemNode import com.tangem.core.ui.test.BaseButtonTestTags import com.tangem.core.ui.test.MarketsTestTags import com.tangem.core.ui.test.TopAppBarTestTags -import com.tangem.core.ui.utils.LazyListItemPositionSemantics import com.tangem.features.onramp.impl.R import io.github.kakaocup.compose.node.element.ComposeScreen import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen import io.github.kakaocup.compose.node.element.KNode -import io.github.kakaocup.compose.node.element.lazylist.KLazyListNode import io.github.kakaocup.kakao.common.utilities.getResourceString -import androidx.compose.ui.test.hasText as withText class MarketsPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) : ComposeScreen(semanticsProvider = semanticsProvider) { - private val lazyList = KLazyListNode( - semanticsProvider = semanticsProvider, - viewBuilderAction = { hasTestTag(MarketsTestTags.TOKENS_LIST) }, - itemTypeBuilder = { itemType(::LazyListItemNode) }, - positionMatcher = { position -> - SemanticsMatcher.expectValue( - LazyListItemPositionSemantics, - position - ) - } - ) - val addToPortfolioButton: KNode = child { hasTestTag(BaseButtonTestTags.TEXT) hasText(getResourceString(R.string.common_add_to_portfolio)) useUnmergedTree = true } - val mainNetworkSwitch: KNode = child { - hasAnyDescendant(withText(MARKETS_MAIN_NETWORK_SUFFIX)) - useUnmergedTree = true - }.child { hasTestTag(MarketsTestTags.ADD_TO_PORTFOLIO_SWITCH) } + val mainNetworkSuffix: KNode = child { + hasText(MARKETS_MAIN_NETWORK_SUFFIX) + } val topBarBackButton: KNode = child { hasTestTag(TopAppBarTestTags.CLOSE_BUTTON) @@ -54,9 +36,9 @@ class MarketsPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) : } fun tokenWithTitle(title: String): KNode { - return lazyList.child { + return child { + hasTestTag(MarketsTestTags.TOKENS_LIST_ITEM) hasText(title) - useUnmergedTree = true } } } diff --git a/app/src/androidTest/kotlin/com/tangem/tests/balance/TotalBalanceUpdateTest.kt b/app/src/androidTest/kotlin/com/tangem/tests/balance/TotalBalanceUpdateTest.kt index eca72183ce..60771fc2ea 100644 --- a/app/src/androidTest/kotlin/com/tangem/tests/balance/TotalBalanceUpdateTest.kt +++ b/app/src/androidTest/kotlin/com/tangem/tests/balance/TotalBalanceUpdateTest.kt @@ -57,7 +57,7 @@ class TotalBalanceUpdateTest : BaseTestCase() { val tokenTitle = "XRP" val scenarioName = "quotes_api" val scenarioState = "Ripple" - val updatedBalance = "$3,307.18" + val updatedBalance = "$3,320.47" setupHooks( additionalAfterSection = { resetWireMockScenarioState(scenarioName) @@ -85,14 +85,18 @@ class TotalBalanceUpdateTest : BaseTestCase() { step("Click on 'Add to portfolio' button") { onMarketsScreen { addToPortfolioButton.clickWithAssertion() } } - step("Toggle the main network switch") { - onMarketsScreen { mainNetworkSwitch.performClick() } + step("Click on main network") { + onMarketsScreen { mainNetworkSuffix.performClick() } } - step("Click on 'Continue' button") { - onDialog { continueButton.clickWithAssertion() } + step("Click on 'Add' button") { + onDialog { addButton.clickWithAssertion() } + onDialog { addButton.clickWithAssertion() } //TODO: [REDACTED_JIRA] } step("Assert 'Continue' is not displayed") { - onDialog { continueButton.assertIsNotDisplayed() } + onDialog { addButton.assertIsNotDisplayed() } + } + step("Click on 'Later' button") { + onDialog { laterButton.clickWithAssertion() } } step("Go back to 'Markets: tokens list'") { waitForIdle() diff --git a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/feed/FeedList.kt b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/feed/FeedList.kt index 88ebc8dc1f..9b5b58f8d5 100644 --- a/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/feed/FeedList.kt +++ b/features/feed/impl/src/main/kotlin/com/tangem/features/feed/ui/feed/FeedList.kt @@ -24,6 +24,7 @@ import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.onFirstVisible +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString @@ -52,6 +53,7 @@ import com.tangem.core.ui.extensions.stringResourceSafe import com.tangem.core.ui.res.LocalMainBottomSheetColor import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview +import com.tangem.core.ui.test.BaseSearchBarTestTags.SEARCH_BAR import com.tangem.features.feed.model.market.list.state.SortByTypeUM import com.tangem.features.feed.ui.feed.preview.FeedListPreviewDataProvider.createFeedPreviewState import com.tangem.features.feed.ui.feed.state.* @@ -69,7 +71,8 @@ internal fun FeedListHeader( modifier = modifier .drawBehind { drawRect(background) } .padding(horizontal = 16.dp) - .padding(bottom = 8.dp), + .padding(bottom = 8.dp) + .testTag(SEARCH_BAR), ) }