diff --git a/app/src/androidTest/kotlin/com/tangem/scenarios/SwapScenarios.kt b/app/src/androidTest/kotlin/com/tangem/scenarios/SwapScenarios.kt index 0548175ef3..91a2a2fa49 100644 --- a/app/src/androidTest/kotlin/com/tangem/scenarios/SwapScenarios.kt +++ b/app/src/androidTest/kotlin/com/tangem/scenarios/SwapScenarios.kt @@ -13,7 +13,6 @@ import com.tangem.common.constants.TestConstants.WAIT_UNTIL_TIMEOUT_VERY_LONG import com.tangem.common.extensions.assertVisibility import com.tangem.common.extensions.clickWhenEnabled import com.tangem.common.extensions.clickWithAssertion -import com.tangem.common.extensions.isDisplayedSafely import com.tangem.core.ui.R as CoreUiR import com.tangem.core.ui.test.BaseButtonTestTags import com.tangem.core.ui.test.HotWalletAccessCodeTestTags @@ -169,7 +168,7 @@ fun BaseTestCase.selectFeeType(feeType: FeeType, selectedFeeAmount: String) { when (feeType) { FeeType.Market -> { step("Click on 'Market' item") { - onSwapSelectNetworkFeeBottomSheet { marketSelectorItem.performClick() } + onSwapSelectNetworkFeeBottomSheet { marketSelectorItem.clickWithAssertion() } } step("Assert fee amount is equal to 'Market' fee:'$selectedFeeAmount'") { onSwapTokenScreen { feeAmount.assertTextContains(selectedFeeAmount, substring = true) } @@ -177,7 +176,7 @@ fun BaseTestCase.selectFeeType(feeType: FeeType, selectedFeeAmount: String) { } FeeType.Fast -> { step("Click on 'Fast' item") { - onSwapSelectNetworkFeeBottomSheet { fastSelectorItem.performClick() } + onSwapSelectNetworkFeeBottomSheet { fastSelectorItem.clickWithAssertion() } } step("Assert fee amount is equal to 'Fast' fee:'$selectedFeeAmount'") { onSwapTokenScreen { feeAmount.assertTextContains(selectedFeeAmount, substring = true) } @@ -186,51 +185,6 @@ fun BaseTestCase.selectFeeType(feeType: FeeType, selectedFeeAmount: String) { } } -fun BaseTestCase.selectFeeTypeWithGasless(feeType: FeeType, selectedFeeAmount: String) { - step("Click on 'Select fee' icon") { - onSwapTokenScreen { selectFeeIcon.performClick() } - } - - when (feeType) { - FeeType.Market -> selectMarketFee(selectedFeeAmount) - FeeType.Fast -> selectFastFee(selectedFeeAmount) - } -} - -private fun BaseTestCase.selectMarketFee(selectedFeeAmount: String) { - step("Deselect current fee and select 'Market'") { - onSwapSelectNetworkFeeBottomSheet { - if (fastSelectorItem.isDisplayedSafely()) { - fastSelectorItem.performClick() - } - marketSelectorItem.performClick() - } - } - step("Click on 'Apply' button") { - onSwapSelectNetworkFeeBottomSheet { applyButton.performClick() } - } - step("Assert fee amount is equal to 'Market' fee:'$selectedFeeAmount'") { - onSwapTokenScreen { feeAmount.assertTextContains(selectedFeeAmount, substring = true) } - } -} - -private fun BaseTestCase.selectFastFee(selectedFeeAmount: String) { - step("Deselect current fee and select 'Fast'") { - onSwapSelectNetworkFeeBottomSheet { - if (marketSelectorItem.isDisplayedSafely()) { - marketSelectorItem.performClick() - } - fastSelectorItem.performClick() - } - } - step("Click on 'Apply' button") { - onSwapSelectNetworkFeeBottomSheet { applyButton.performClick() } - } - step("Assert fee amount is equal to 'Fast' fee:'$selectedFeeAmount'") { - onSwapTokenScreen { feeAmount.assertTextContains(selectedFeeAmount, substring = true) } - } -} - fun BaseTestCase.chackUnableToCoverFeeNotification(networkName: String, currencySymbol: String) { step("Assert 'Unable to cover '$networkName' fee notification title is displayed'") { onSwapTokenScreen { unableToCoverFeeNotificationTitle(networkName).assertIsDisplayed() } diff --git a/app/src/androidTest/kotlin/com/tangem/tests/swap/SwapTokenScreenTest.kt b/app/src/androidTest/kotlin/com/tangem/tests/swap/SwapTokenScreenTest.kt index 7137918e72..c9c75494e4 100644 --- a/app/src/androidTest/kotlin/com/tangem/tests/swap/SwapTokenScreenTest.kt +++ b/app/src/androidTest/kotlin/com/tangem/tests/swap/SwapTokenScreenTest.kt @@ -600,18 +600,24 @@ class SwapTokenScreenTest : BaseTestCase() { val feeAmount = "$" val scenarioName = "eth_network_balance" val scenarioState = "LessThanDollar" + val pairsScenarioName = "ethereum_from_pairs" + val pairsScenarioState = "DexProvider" val networkName = "Ethereum" val currencySymbol = "ETH" setupHooks( additionalAfterSection = { resetWireMockScenarioState(scenarioName) + resetWireMockScenarioState(pairsScenarioName) } ).run { step("Set WireMock scenario: '$scenarioName' to state: '$scenarioState'") { setWireMockScenarioState(scenarioName = scenarioName, state = scenarioState) } + step("Set WireMock scenario: '$pairsScenarioName' to state: $pairsScenarioState") { + setWireMockScenarioState(scenarioName = pairsScenarioName, state = pairsScenarioState) + } step("Open 'Main Screen'") { openMainScreen() @@ -679,6 +685,8 @@ class SwapTokenScreenTest : BaseTestCase() { val marketFeeAmount = "$1." val scenarioName = "eth_fee_history" val scenarioState = "UnableToCoverFastFee" + val pairsScenarioName = "ethereum_from_pairs" + val pairsScenarioState = "DexProvider" val networkName = "Ethereum" val currencySymbol = "ETH" @@ -686,12 +694,16 @@ class SwapTokenScreenTest : BaseTestCase() { setupHooks( additionalAfterSection = { resetWireMockScenarioState(scenarioName) + resetWireMockScenarioState(pairsScenarioName) } ).run { step("Set WireMock scenario: '$scenarioName' to state: '$scenarioState'") { setWireMockScenarioState(scenarioName = scenarioName, state = scenarioState) } + step("Set WireMock scenario: '$pairsScenarioName' to state: $pairsScenarioState") { + setWireMockScenarioState(scenarioName = pairsScenarioName, state = pairsScenarioState) + } step("Open 'Main Screen'") { openMainScreen() @@ -728,7 +740,7 @@ class SwapTokenScreenTest : BaseTestCase() { } step("Select '$fastFeeType' fee type") { flakySafely(WAIT_UNTIL_TIMEOUT_LONG) { - selectFeeTypeWithGasless(feeType = FeeType.Fast, fastFeeAmount) + selectFeeType(feeType = FeeType.Fast, selectedFeeAmount = fastFeeAmount) } } step("Assert fee amount is equal to '$fastFeeType' fee:'$fastFeeAmount'") { @@ -744,7 +756,7 @@ class SwapTokenScreenTest : BaseTestCase() { } step("Select '$marketFeeType' fee type") { flakySafely(WAIT_UNTIL_TIMEOUT_LONG) { - selectFeeTypeWithGasless(feeType = FeeType.Market, marketFeeAmount) + selectFeeType(feeType = FeeType.Market, selectedFeeAmount = marketFeeAmount) } } step("Assert 'Swap' button is enabled") { diff --git a/app/src/androidTest/kotlin/com/tangem/tests/swap/SwapTokenScreenWarningsTest.kt b/app/src/androidTest/kotlin/com/tangem/tests/swap/SwapTokenScreenWarningsTest.kt index 51e2368332..314b7f2f14 100644 --- a/app/src/androidTest/kotlin/com/tangem/tests/swap/SwapTokenScreenWarningsTest.kt +++ b/app/src/androidTest/kotlin/com/tangem/tests/swap/SwapTokenScreenWarningsTest.kt @@ -86,6 +86,8 @@ class SwapTokenScreenWarningsTest : BaseTestCase() { val tokensScenarioState = "SolanaUSDC" val balanceScenarioName = "solana_balance" val balanceScenarioState = "Empty" + val pairsScenarioName = "solana_from_pairs" + val pairsScenarioState = "DexProvider" val networkName = "Solana" val currencySymbol = "SOL" @@ -94,6 +96,7 @@ class SwapTokenScreenWarningsTest : BaseTestCase() { resetWireMockScenarioState(USER_TOKENS_API_SCENARIO) resetWireMockScenarioState(QUOTES_API_SCENARIO) resetWireMockScenarioState(balanceScenarioName) + resetWireMockScenarioState(pairsScenarioName) } ).run { @@ -106,6 +109,9 @@ class SwapTokenScreenWarningsTest : BaseTestCase() { step("Set WireMock scenario: '$balanceScenarioName' to state: $balanceScenarioState") { setWireMockScenarioState(scenarioName = balanceScenarioName, state = balanceScenarioState) } + step("Set WireMock scenario: '$pairsScenarioName' to state: $pairsScenarioState") { + setWireMockScenarioState(scenarioName = pairsScenarioName, state = pairsScenarioState) + } step("Open 'Main Screen'") { openMainScreen()