Updated on 2026-08-14
This commit is contained in:
parent
44abe1e0cc
commit
d55166393e
3 changed files with 46 additions and 7 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
package com.tangem.common.extensions
|
package com.tangem.common.extensions
|
||||||
|
|
||||||
|
import androidx.compose.ui.test.hasText
|
||||||
import io.github.kakaocup.compose.node.element.KNode
|
import io.github.kakaocup.compose.node.element.KNode
|
||||||
|
|
||||||
fun KNode.clickWithAssertion() {
|
fun KNode.clickWithAssertion() {
|
||||||
|
|
@ -7,3 +8,13 @@ fun KNode.clickWithAssertion() {
|
||||||
performClick()
|
performClick()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun KNode.assertTextContainsSafe(
|
||||||
|
text: String,
|
||||||
|
substring: Boolean = false,
|
||||||
|
ignoreCase: Boolean = false,
|
||||||
|
) {
|
||||||
|
assert(
|
||||||
|
hasText(text = text, substring = substring, ignoreCase = ignoreCase)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.tangem.tests
|
package com.tangem.tests
|
||||||
|
|
||||||
import com.tangem.common.BaseTestCase
|
import com.tangem.common.BaseTestCase
|
||||||
|
import com.tangem.common.extensions.assertTextContainsSafe
|
||||||
import com.tangem.common.extensions.clickWithAssertion
|
import com.tangem.common.extensions.clickWithAssertion
|
||||||
import com.tangem.common.utils.resetWireMockScenarioState
|
import com.tangem.common.utils.resetWireMockScenarioState
|
||||||
import com.tangem.common.utils.setWireMockScenarioState
|
import com.tangem.common.utils.setWireMockScenarioState
|
||||||
|
|
@ -374,7 +375,9 @@ class BuyTokenTest : BaseTestCase() {
|
||||||
onSelectProviderBottomSheet { paymentMethodIcon.assertIsDisplayed() }
|
onSelectProviderBottomSheet { paymentMethodIcon.assertIsDisplayed() }
|
||||||
}
|
}
|
||||||
step("Assert provider name: '$providerNameMercuryo'") {
|
step("Assert provider name: '$providerNameMercuryo'") {
|
||||||
onSelectProviderBottomSheet { providerName.assertTextContains(providerNameMercuryo) }
|
onSelectProviderBottomSheet {
|
||||||
|
providerName.assertTextContainsSafe(text = providerNameMercuryo, substring = true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class SwapTokenScreenTest : BaseTestCase() {
|
||||||
@DisplayName("Swap: network fee")
|
@DisplayName("Swap: network fee")
|
||||||
@Test
|
@Test
|
||||||
fun networkFeeTest() {
|
fun networkFeeTest() {
|
||||||
val inputAmount = "100"
|
val inputAmount = "400"
|
||||||
val tokenTitle = "Polygon"
|
val tokenTitle = "Polygon"
|
||||||
|
|
||||||
setupHooks().run {
|
setupHooks().run {
|
||||||
|
|
@ -99,22 +99,31 @@ class SwapTokenScreenTest : BaseTestCase() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
step("Assert receive amount is not equal to '0'") {
|
step("Assert receive amount is not equal to '0'") {
|
||||||
onSwapTokenScreen { receiveAmount.assert(!hasText("0")) }
|
onSwapTokenScreen {
|
||||||
|
flakySafely(WAIT_UNTIL_TIMEOUT_LONG) {
|
||||||
|
waitForIdle()
|
||||||
|
receiveAmount.assert(!hasText("0"))
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiEnv(
|
||||||
|
ApiEnvConfig(ApiConfig.ID.Express, ApiEnvironment.PROD)
|
||||||
|
)
|
||||||
@AllureId("3549")
|
@AllureId("3549")
|
||||||
@DisplayName("Swap: network error test")
|
@DisplayName("Swap: network error test")
|
||||||
@Test
|
@Test
|
||||||
fun networkErrorSwapTest() {
|
fun networkErrorSwapTest() {
|
||||||
|
val tokenTitle = "Polygon"
|
||||||
|
|
||||||
setupHooks(
|
setupHooks(
|
||||||
additionalAfterSection = {
|
additionalAfterSection = {
|
||||||
enableWiFi()
|
enableWiFi()
|
||||||
enableMobileData()
|
enableMobileData()
|
||||||
}
|
}
|
||||||
).run {
|
).run {
|
||||||
val tokenTitle = "Polygon"
|
|
||||||
|
|
||||||
step("Open 'Main Screen'") {
|
step("Open 'Main Screen'") {
|
||||||
openMainScreen()
|
openMainScreen()
|
||||||
|
|
@ -142,7 +151,12 @@ class SwapTokenScreenTest : BaseTestCase() {
|
||||||
onSwapTokenScreen { title.assertIsDisplayed() }
|
onSwapTokenScreen { title.assertIsDisplayed() }
|
||||||
}
|
}
|
||||||
step("Assert error notification title is displayed") {
|
step("Assert error notification title is displayed") {
|
||||||
onSwapTokenScreen { errorNotificationTitle.assertIsDisplayed() }
|
onSwapTokenScreen {
|
||||||
|
waitForIdle()
|
||||||
|
flakySafely(WAIT_UNTIL_TIMEOUT_LONG) {
|
||||||
|
errorNotificationTitle.assertIsDisplayed()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
step("Assert error notification text is displayed") {
|
step("Assert error notification text is displayed") {
|
||||||
onSwapTokenScreen { errorNotificationText.assertIsDisplayed() }
|
onSwapTokenScreen { errorNotificationText.assertIsDisplayed() }
|
||||||
|
|
@ -160,7 +174,8 @@ class SwapTokenScreenTest : BaseTestCase() {
|
||||||
@DisplayName("Swap: change network fee")
|
@DisplayName("Swap: change network fee")
|
||||||
@Test
|
@Test
|
||||||
fun changeNetworkFeeTest() {
|
fun changeNetworkFeeTest() {
|
||||||
val inputAmount = "100"
|
val inputAmount = "400"
|
||||||
|
|
||||||
setupHooks().run {
|
setupHooks().run {
|
||||||
val tokenTitle = "Polygon"
|
val tokenTitle = "Polygon"
|
||||||
|
|
||||||
|
|
@ -209,10 +224,20 @@ class SwapTokenScreenTest : BaseTestCase() {
|
||||||
step("Assert input amount = '$inputAmount'") {
|
step("Assert input amount = '$inputAmount'") {
|
||||||
onSwapTokenScreen { textInput.assertTextEquals(inputAmount) }
|
onSwapTokenScreen { textInput.assertTextEquals(inputAmount) }
|
||||||
}
|
}
|
||||||
|
step("Assert 'Network fee' block is displayed") {
|
||||||
|
onSwapTokenScreen {
|
||||||
|
flakySafely(WAIT_UNTIL_TIMEOUT_LONG) {
|
||||||
|
networkFeeBlock.assertIsDisplayed()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
step("Assert 'Swap' button is enabled") {
|
||||||
|
onSwapTokenScreen { swapButton.assertIsEnabled() }
|
||||||
|
}
|
||||||
step("Click on 'Network fee' block") {
|
step("Click on 'Network fee' block") {
|
||||||
onSwapTokenScreen {
|
onSwapTokenScreen {
|
||||||
flakySafely(WAIT_UNTIL_TIMEOUT_LONG) {
|
flakySafely(WAIT_UNTIL_TIMEOUT_LONG) {
|
||||||
selectFeeIcon.clickWithAssertion()
|
selectFeeIcon.performClick()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue