Updated on 2026-08-14
This commit is contained in:
parent
8db1038e3f
commit
ba3e7e4044
3 changed files with 22 additions and 50 deletions
|
|
@ -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() }
|
||||
|
|
|
|||
|
|
@ -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") {
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue