diff --git a/app/src/androidTest/kotlin/com/tangem/scenarios/StakingScenarios.kt b/app/src/androidTest/kotlin/com/tangem/scenarios/StakingScenarios.kt new file mode 100644 index 0000000000..f803796469 --- /dev/null +++ b/app/src/androidTest/kotlin/com/tangem/scenarios/StakingScenarios.kt @@ -0,0 +1,124 @@ +package com.tangem.scenarios + +import com.tangem.common.BaseTestCase +import com.tangem.screens.onSendScreen +import com.tangem.screens.onStakingConfirmScreen +import com.tangem.screens.onStakingDetailsScreen +import io.qameta.allure.kotlin.Allure.step + +fun BaseTestCase.checkStakingDetailsScreen(withStaking: Boolean) { + step("Assert 'Title' is displayed") { + onStakingDetailsScreen { stakingTitle.assertIsDisplayed() } + } + step("Assert 'Annual percentage rate' is displayed") { + onStakingDetailsScreen { annualPercentageRate.assertIsDisplayed() } + } + step("Assert 'Available' block is displayed") { + onStakingDetailsScreen { availableBlock.assertIsDisplayed() } + } + step("Assert 'Unbonding Period' block is displayed") { + onStakingDetailsScreen { unbondingPeriodBlock.assertIsDisplayed() } + } + step("Assert 'Reward claiming' block is displayed") { + onStakingDetailsScreen { rewardClaimingBlock.assertIsDisplayed() } + } + step("Assert 'Reward schedule' block is displayed") { + onStakingDetailsScreen { rewardScheduleBlock.assertIsDisplayed() } + } + step("Assert 'ToS' text is displayed") { + onStakingDetailsScreen { toSText.assertIsDisplayed() } + } + if (withStaking) { + step("Assert 'Rewards block' is displayed") { + onStakingDetailsScreen { rewardsBlock.assertIsDisplayed() } + } + step("Assert 'Rewards block' title is displayed") { + onStakingDetailsScreen { rewardsBlockTitle.assertIsDisplayed() } + } + step("Assert 'Rewards block' text is displayed") { + onStakingDetailsScreen { rewardsBlockText.assertIsDisplayed() } + } + step("Assert 'Active staking block' is displayed") { + onStakingDetailsScreen { activeStakingBlock.assertIsDisplayed() } + } + step("Assert 'Your stakes' title is displayed") { + onStakingDetailsScreen { yourStakesTitle.assertIsDisplayed() } + } + step("Assert 'Stake more' button is displayed") { + onStakingDetailsScreen { stakeMoreButton.assertIsDisplayed() } + } + } else { + step("Assert banner image is displayed") { + onStakingDetailsScreen { bannerImage.assertIsDisplayed() } + } + step("Assert banner text is displayed") { + onStakingDetailsScreen { bannerText.assertIsDisplayed() } + } + step("Assert 'Stake' button is displayed") { + onStakingDetailsScreen { stakeButton.assertIsDisplayed() } + } + } + +} +fun BaseTestCase.checkStakingScreen(stakingAmount: String) { + step("Assert 'Staking' screen is displayed") { + onSendScreen { screenContainer.assertIsDisplayed() } + } + step("Assert top app bar 'Close' button is displayed") { + onSendScreen { closeButton.assertIsDisplayed() } + } + step("Assert 'Send' screen title is displayed") { + onSendScreen { title.assertIsDisplayed() } + } + step("Assert amount container title is displayed") { + onSendScreen { amountContainerTitle.assertIsDisplayed() } + } + step("Assert input text field is displayed") { + onSendScreen { amountInputTextField.assertIsDisplayed() } + } + step("Assert token name is displayed") { + onSendScreen { tokenName.assertIsDisplayed() } + } + step("Assert primary amount is displayed") { + onSendScreen { primaryAmount.assertIsDisplayed() } + } + step("Assert secondary amount is displayed") { + onSendScreen { secondaryAmount.assertIsDisplayed() } + } + step("Type '$stakingAmount' in input text field") { + onSendScreen { + amountInputTextField.performClick() + amountInputTextField.performTextReplacement(stakingAmount) + } + } + step("Assert input text field has value: '$stakingAmount'") { + onSendScreen { amountInputTextField.assertTextContains(value = stakingAmount, substring = true) } + } + step("Assert 'Max' button is displayed") { + onSendScreen { maxButton.assertIsDisplayed() } + } + step("Assert 'Next' button is displayed") { + onSendScreen { nextButton.assertIsDisplayed() } + } +} + +fun BaseTestCase.checkStakingConfirmScreen() { + step("Assert 'Staking confirm' screen title is displayed") { + onStakingConfirmScreen { title.assertIsDisplayed() } + } + step("Assert primary amount is displayed") { + onStakingConfirmScreen { primaryAmount.assertIsDisplayed() } + } + step("Assert secondary amount is displayed") { + onStakingConfirmScreen { secondaryAmount.assertIsDisplayed() } + } + step("Assert 'Validator' block is displayed") { + onStakingConfirmScreen { validatorBlock.assertIsDisplayed() } + } + step("Assert 'Network Fee' block is displayed") { + onStakingConfirmScreen { networkFeeBlock.assertIsDisplayed() } + } + step("Assert 'Stake' button is displayed") { + onStakingConfirmScreen { stakeButton.assertIsDisplayed() } + } +} \ No newline at end of file diff --git a/app/src/androidTest/kotlin/com/tangem/screens/SendPageObject.kt b/app/src/androidTest/kotlin/com/tangem/screens/SendPageObject.kt index f988ad6de5..d12952956b 100644 --- a/app/src/androidTest/kotlin/com/tangem/screens/SendPageObject.kt +++ b/app/src/androidTest/kotlin/com/tangem/screens/SendPageObject.kt @@ -10,7 +10,6 @@ import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onCompose import io.github.kakaocup.compose.node.element.KNode import io.github.kakaocup.kakao.common.utilities.getResourceString import com.tangem.features.send.v2.impl.R as SendR -import androidx.compose.ui.test.hasTestTag as withTestTag class SendPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) : ComposeScreen(semanticsProvider = semanticsProvider) { @@ -19,6 +18,11 @@ class SendPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) : hasTestTag(SendScreenTestTags.SCREEN_CONTAINER) } + val closeButton: KNode = child { + hasTestTag(TopAppBarTestTags.CLOSE_BUTTON) + useUnmergedTree = true + } + val title: KNode = child { hasTestTag(TopAppBarTestTags.TITLE) useUnmergedTree = true @@ -29,13 +33,18 @@ class SendPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) : useUnmergedTree = true } - val amountContainerText: KNode = child { - hasTestTag(SendScreenTestTags.AMOUNT_CONTAINER_TEXT) + val amountInputTextField: KNode = child { + hasTestTag(SendScreenTestTags.INPUT_TEXT_FIELD) useUnmergedTree = true } - val amountInputTextField: KNode = child { - hasTestTag(SendScreenTestTags.INPUT_TEXT_FIELD) + val tokenName: KNode = child { + hasTestTag(SendScreenTestTags.TOKEN_NAME) + useUnmergedTree = true + } + + val primaryAmount: KNode = child { + hasTestTag(SendScreenTestTags.PRIMARY_AMOUNT) useUnmergedTree = true } @@ -44,28 +53,11 @@ class SendPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) : useUnmergedTree = true } - val currencyButton: KNode = child { - hasTestTag(SendScreenTestTags.CURRENCY_BUTTON) - hasAnyChild(withTestTag(SendScreenTestTags.CURRENCY_ICON)) - useUnmergedTree = true - } - - val fiatButton: KNode = child { - hasTestTag(SendScreenTestTags.CURRENCY_BUTTON) - hasAnyChild(withTestTag(SendScreenTestTags.FIAT_ICON)) - useUnmergedTree = true - } - val maxButton: KNode = child { hasTestTag(SendScreenTestTags.MAX_BUTTON) useUnmergedTree = true } - val previousButton: KNode = child { - hasTestTag(SendScreenTestTags.PREVIOUS_BUTTON) - useUnmergedTree = true - } - val nextButton: KNode = child { hasTestTag(BaseButtonTestTags.TEXT) hasText(getResourceString(SendR.string.common_next)) diff --git a/app/src/androidTest/kotlin/com/tangem/tests/StakingTest.kt b/app/src/androidTest/kotlin/com/tangem/tests/StakingTest.kt index 8bbb02ebab..29404214c2 100644 --- a/app/src/androidTest/kotlin/com/tangem/tests/StakingTest.kt +++ b/app/src/androidTest/kotlin/com/tangem/tests/StakingTest.kt @@ -7,9 +7,8 @@ import com.tangem.common.extensions.clickWithAssertion import com.tangem.common.extensions.swipeVertical import com.tangem.common.utils.resetWireMockScenarioState import com.tangem.common.utils.setWireMockScenarioState +import com.tangem.scenarios.* import com.tangem.screens.* -import com.tangem.scenarios.openMainScreen -import com.tangem.scenarios.synchronizeAddresses import dagger.hilt.android.testing.HiltAndroidTest import io.qameta.allure.kotlin.AllureId import io.qameta.allure.kotlin.junit4.DisplayName @@ -117,116 +116,20 @@ class StakingTest : BaseTestCase() { step("Click on 'Staking block'") { onTokenDetailsScreen { stakingBlock.clickWithAssertion() } } - step("Assert 'Title' is displayed") { - onStakingDetailsScreen { stakingTitle.assertIsDisplayed() } - } - step("Assert 'Annual percentage rate' is displayed") { - onStakingDetailsScreen { annualPercentageRate.assertIsDisplayed() } - } - step("Assert 'Available' block is displayed") { - onStakingDetailsScreen { availableBlock.assertIsDisplayed() } - } - step("Assert 'Unbonding Period' block is displayed") { - onStakingDetailsScreen { unbondingPeriodBlock.assertIsDisplayed() } - } - step("Assert 'Reward claiming' block is displayed") { - onStakingDetailsScreen { rewardClaimingBlock.assertIsDisplayed() } - } - step("Assert 'Reward schedule' block is displayed") { - onStakingDetailsScreen { rewardScheduleBlock.assertIsDisplayed() } - } - step("Assert 'Rewards block' is displayed") { - onStakingDetailsScreen { rewardsBlock.assertIsDisplayed() } - } - step("Assert 'Rewards block' title is displayed") { - onStakingDetailsScreen { rewardsBlockTitle.assertIsDisplayed() } - } - step("Assert 'Rewards block' text is displayed") { - onStakingDetailsScreen { rewardsBlockText.assertIsDisplayed() } - } - step("Assert 'Active staking block' is displayed") { - onStakingDetailsScreen { activeStakingBlock.assertIsDisplayed() } - } - step("Assert 'Your stakes' title is displayed") { - onStakingDetailsScreen { yourStakesTitle.assertIsDisplayed() } - } - step("Assert 'ToS' text is displayed") { - onStakingDetailsScreen { toSText.assertIsDisplayed() } - } - step("Assert 'Stake more' button is displayed") { - onStakingDetailsScreen { stakeMoreButton.assertIsDisplayed() } + step("Check 'Staking details' screen") { + checkStakingDetailsScreen(withStaking = true) } step("Click 'Stake more' button") { onStakingDetailsScreen { stakeMoreButton.performClick() } } - step("Assert 'Send' screen is displayed") { - onSendScreen { screenContainer.assertIsDisplayed() } - } - step("Assert 'Send' screen title is displayed") { - onSendScreen { title.assertIsDisplayed() } - } - step("Assert amount container title is displayed") { - onSendScreen { amountContainerTitle.assertIsDisplayed() } - } - step("Assert amount container text is displayed") { - onSendScreen { amountContainerText.assertIsDisplayed() } - } - step("Assert input text field is displayed") { - onSendScreen { amountInputTextField.assertIsDisplayed() } - } - step("Assert secondary amount is displayed") { - onSendScreen { secondaryAmount.assertIsDisplayed() } - } - step("Type '$stakingAmount' in input text field") { - onSendScreen { - amountInputTextField.performClick() - amountInputTextField.performTextReplacement(stakingAmount) - } - } - step("Assert input text field has value: '$stakingAmount'") { - onSendScreen { amountInputTextField.assertTextContains(value = stakingAmount, substring = true) } - } - step("Assert currency button is displayed") { - onSendScreen { currencyButton.assertIsDisplayed() } - } - step("Assert fiat button is displayed") { - onSendScreen { fiatButton.assertIsDisplayed() } - } - step("Assert currency button is displayed") { - onSendScreen { currencyButton.assertIsDisplayed() } - } - step("Assert fiat button is displayed") { - onSendScreen { fiatButton.assertIsDisplayed() } - } - step("Assert 'Max' button is displayed") { - onSendScreen { maxButton.assertIsDisplayed() } - } - step("Assert previous button is displayed") { - onSendScreen { previousButton.assertIsDisplayed() } - } - step("Assert 'Next' button is displayed") { - onSendScreen { nextButton.assertIsDisplayed() } + step("Check 'Staking' screen") { + checkStakingScreen(stakingAmount) } step("Click on 'Next' button") { onSendScreen { nextButton.performClick() } } - step("Assert 'Send details' screen title is displayed") { - onStakingConfirmScreen { title.assertIsDisplayed() } - } - step("Assert primary amount is displayed") { - onStakingConfirmScreen { primaryAmount.assertIsDisplayed() } - } - step("Assert secondary amount is displayed") { - onStakingConfirmScreen { secondaryAmount.assertIsDisplayed() } - } - step("Assert 'Validator' block is displayed") { - onStakingConfirmScreen { validatorBlock.assertIsDisplayed() } - } - step("Assert 'Network Fee' block is displayed") { - onStakingConfirmScreen { networkFeeBlock.assertIsDisplayed() } - } - step("Assert 'Stake' button is displayed") { - onStakingConfirmScreen { stakeButton.assertIsDisplayed() } + step("Check 'Staking confirm' screen") { + checkStakingConfirmScreen() } } } @@ -284,107 +187,20 @@ class StakingTest : BaseTestCase() { step("Click on 'Stake' button") { onTokenDetailsScreen { stakeButton.clickWithAssertion() } } - step("Assert 'Title' is displayed") { - onStakingDetailsScreen { stakingTitle.assertIsDisplayed() } - } - step("Assert banner image is displayed") { - onStakingDetailsScreen { bannerImage.assertIsDisplayed() } - } - step("Assert banner text is displayed") { - onStakingDetailsScreen { bannerText.assertIsDisplayed() } - } - step("Assert 'Annual percentage rate' is displayed") { - onStakingDetailsScreen { annualPercentageRate.assertIsDisplayed() } - } - step("Assert 'Available' block is displayed") { - onStakingDetailsScreen { availableBlock.assertIsDisplayed() } - } - step("Assert 'Unbonding Period' block is displayed") { - onStakingDetailsScreen { unbondingPeriodBlock.assertIsDisplayed() } - } - step("Assert 'Reward claiming' block is displayed") { - onStakingDetailsScreen { rewardClaimingBlock.assertIsDisplayed() } - } - step("Assert 'Reward schedule' block is displayed") { - onStakingDetailsScreen { rewardScheduleBlock.assertIsDisplayed() } - } - step("Assert 'ToS' text is displayed") { - onStakingDetailsScreen { toSText.assertIsDisplayed() } - } - step("Assert 'Stake' button is displayed") { - onStakingDetailsScreen { stakeButton.assertIsDisplayed() } + step("Check 'Staking details' screen") { + checkStakingDetailsScreen(withStaking = false) } step("Click 'Stake' button") { onStakingDetailsScreen { stakeButton.performClick() } } - step("Assert 'Send' screen is displayed") { - onSendScreen { screenContainer.assertIsDisplayed() } - } - step("Assert 'Send' screen title is displayed") { - onSendScreen { title.assertIsDisplayed() } - } - step("Assert amount container title is displayed") { - onSendScreen { amountContainerTitle.assertIsDisplayed() } - } - step("Assert amount container text is displayed") { - onSendScreen { amountContainerText.assertIsDisplayed() } - } - step("Assert input text field is displayed") { - onSendScreen { amountInputTextField.assertIsDisplayed() } - } - step("Assert secondary amount is displayed") { - onSendScreen { secondaryAmount.assertIsDisplayed() } - } - step("Type '$stakingAmount' in input text field") { - onSendScreen { - amountInputTextField.performClick() - amountInputTextField.performTextReplacement(stakingAmount) - } - } - step("Assert input text field has value: '$stakingAmount'") { - onSendScreen { amountInputTextField.assertTextContains(value = stakingAmount, substring = true) } - } - step("Assert currency button is displayed") { - onSendScreen { currencyButton.assertIsDisplayed() } - } - step("Assert fiat button is displayed") { - onSendScreen { fiatButton.assertIsDisplayed() } - } - step("Assert currency button is displayed") { - onSendScreen { currencyButton.assertIsDisplayed() } - } - step("Assert fiat button is displayed") { - onSendScreen { fiatButton.assertIsDisplayed() } - } - step("Assert 'Max' button is displayed") { - onSendScreen { maxButton.assertIsDisplayed() } - } - step("Assert previous button is displayed") { - onSendScreen { previousButton.assertIsDisplayed() } - } - step("Assert 'Next' button is displayed") { - onSendScreen { nextButton.assertIsDisplayed() } + step("Check 'Staking' screen") { + checkStakingScreen(stakingAmount) } step("Click on 'Next' button") { onSendScreen { nextButton.performClick() } } - step("Assert 'Send details' screen title is displayed") { - onStakingConfirmScreen { title.assertIsDisplayed() } - } - step("Assert primary amount is displayed") { - onStakingConfirmScreen { primaryAmount.assertIsDisplayed() } - } - step("Assert secondary amount is displayed") { - onStakingConfirmScreen { secondaryAmount.assertIsDisplayed() } - } - step("Assert 'Validator' block is displayed") { - onStakingConfirmScreen { validatorBlock.assertIsDisplayed() } - } - step("Assert 'Network Fee' block is displayed") { - onStakingConfirmScreen { networkFeeBlock.assertIsDisplayed() } - } - step("Assert 'Stake' button is displayed") { - onStakingConfirmScreen { stakeButton.assertIsDisplayed() } + step("Check 'Staking confirm' screen") { + checkStakingConfirmScreen() } } } diff --git a/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountBlock.kt b/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountBlock.kt index 9ec184b76e..7cb45e5259 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountBlock.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountBlock.kt @@ -11,7 +11,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.platform.testTag import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -28,7 +27,6 @@ import com.tangem.core.ui.format.bigdecimal.fiat import com.tangem.core.ui.format.bigdecimal.format import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview -import com.tangem.core.ui.test.BaseAmountBlockTestTags @Composable fun AmountBlock(amountState: AmountState, isClickDisabled: Boolean, isEditingDisabled: Boolean, onClick: () -> Unit) { @@ -80,8 +78,7 @@ fun AmountBlock(amountState: AmountState, isClickDisabled: Boolean, isEditingDis maxLines = 1, modifier = Modifier .fillMaxWidth() - .padding(top = TangemTheme.dimens.spacing24) - .testTag(BaseAmountBlockTestTags.PRIMARY_AMOUNT), + .padding(top = TangemTheme.dimens.spacing24), ) Text( text = secondAmount, @@ -90,8 +87,7 @@ fun AmountBlock(amountState: AmountState, isClickDisabled: Boolean, isEditingDis textAlign = TextAlign.Center, modifier = Modifier .fillMaxWidth() - .padding(top = TangemTheme.dimens.spacing8) - .testTag(BaseAmountBlockTestTags.SECONDARY_AMOUNT), + .padding(top = TangemTheme.dimens.spacing8), ) } } diff --git a/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountBlockV2.kt b/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountBlockV2.kt index 374ea3289c..68eca36591 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountBlockV2.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountBlockV2.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.platform.testTag import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider @@ -28,6 +29,7 @@ import com.tangem.core.ui.format.bigdecimal.format import com.tangem.core.ui.format.bigdecimal.uncapped import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemThemePreview +import com.tangem.core.ui.test.BaseAmountBlockTestTags @Composable fun AmountBlockV2( @@ -133,6 +135,7 @@ private fun AmountBlockV2( style = TangemTheme.typography.h2, color = TangemTheme.colors.text.primary1, maxLines = 1, + modifier = Modifier.testTag(BaseAmountBlockTestTags.PRIMARY_AMOUNT), ) Row( horizontalArrangement = Arrangement.spacedBy(4.dp), @@ -142,6 +145,7 @@ private fun AmountBlockV2( style = TangemTheme.typography.body2, color = TangemTheme.colors.text.tertiary, maxLines = 1, + modifier = Modifier.testTag(BaseAmountBlockTestTags.SECONDARY_AMOUNT), ) extraContent() } diff --git a/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountFieldContainer.kt b/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountFieldContainer.kt index d5973e72b8..ec354c5ff4 100644 --- a/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountFieldContainer.kt +++ b/common/ui/src/main/java/com/tangem/common/ui/amountScreen/ui/AmountFieldContainer.kt @@ -15,6 +15,7 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.platform.testTag import androidx.compose.ui.unit.dp import com.tangem.common.ui.R import com.tangem.common.ui.amountScreen.models.AmountState @@ -26,6 +27,7 @@ import com.tangem.core.ui.components.currency.icon.CurrencyIconState import com.tangem.core.ui.extensions.resolveReference import com.tangem.core.ui.extensions.stringResourceSafe import com.tangem.core.ui.res.TangemTheme +import com.tangem.core.ui.test.SendScreenTestTags private const val AMOUNT_FIELD_KEY = "amountFieldKey" @@ -60,6 +62,7 @@ internal fun LazyListScope.amountFieldV2( text = amountState.title.resolveReference(), style = TangemTheme.typography.subtitle2, color = TangemTheme.colors.text.tertiary, + modifier = Modifier.testTag(SendScreenTestTags.AMOUNT_CONTAINER_TITLE), ) } AmountFieldV2( @@ -117,7 +120,8 @@ private fun AmountInfo(amountUM: AmountState, onMaxAmountClick: () -> Unit, modi indication = ripple(), onClick = onMaxAmountClick, ) - .padding(horizontal = 12.dp, vertical = 4.dp), + .padding(horizontal = 12.dp, vertical = 4.dp) + .testTag(SendScreenTestTags.MAX_BUTTON), ) } } @@ -139,6 +143,7 @@ private fun AmountInfoMain(amountUM: AmountState, modifier: Modifier = Modifier) style = TangemTheme.typography.subtitle2, color = TangemTheme.colors.text.primary1, maxLines = 1, + modifier = Modifier.testTag(SendScreenTestTags.TOKEN_NAME), ) Row { EllipsisText( @@ -148,7 +153,9 @@ private fun AmountInfoMain(amountUM: AmountState, modifier: Modifier = Modifier) ellipsis = TextEllipsis.OffsetEnd( amountUM.amountTextField.cryptoAmount.currencySymbol.length, ), - modifier = Modifier.weight(1f, fill = false), + modifier = Modifier + .weight(1f, fill = false) + .testTag(SendScreenTestTags.PRIMARY_AMOUNT), ) EllipsisText( text = amountUM.availableBalanceFiat.resolveReference(), @@ -157,6 +164,7 @@ private fun AmountInfoMain(amountUM: AmountState, modifier: Modifier = Modifier) ellipsis = TextEllipsis.OffsetEnd( amountUM.amountTextField.fiatAmount.currencySymbol.length, ), + modifier = Modifier.testTag(SendScreenTestTags.SECONDARY_AMOUNT), ) } } diff --git a/core/ui/src/main/java/com/tangem/core/ui/test/SendScreenTestTags.kt b/core/ui/src/main/java/com/tangem/core/ui/test/SendScreenTestTags.kt index bc025954ac..fe8785cc8c 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/test/SendScreenTestTags.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/test/SendScreenTestTags.kt @@ -4,13 +4,11 @@ object SendScreenTestTags { const val SCREEN_CONTAINER = "SEND_SCREEN_CONTAINER" const val AMOUNT_CONTAINER_TITLE = "SEND_SCREEN_AMOUNT_CONTAINER_TITLE" - const val AMOUNT_CONTAINER_TEXT = "SEND_SCREEN_AMOUNT_CONTAINER_TEXT" const val INPUT_TEXT_FIELD = "SEND_SCREEN_INPUT_TEXT_FIELD" + const val TOKEN_NAME = "SEND_SCREEN_TOKEN_NAME" + const val PRIMARY_AMOUNT = "SEND_SCREEN_PRIMARY_AMOUNT" const val SECONDARY_AMOUNT = "SEND_SCREEN_SECONDARY_AMOUNT" - const val CURRENCY_BUTTON = "SEND_SCREEN_CURRENCY_BUTTON" - const val FIAT_ICON = "SEND_SCREEN_FIAT_ICON" - const val CURRENCY_ICON = "SEND_SCREEN_CURRENCY_ICON" - const val MAX_BUTTON = "END_SCREEN_MAX_BUTTON" + const val MAX_BUTTON = "SEND_SCREEN_MAX_BUTTON" const val PREVIOUS_BUTTON = "SEND_SCREEN_PREVIOUS_BUTTON" } \ No newline at end of file