Updated on 2026-08-14
This commit is contained in:
parent
d050fa2654
commit
bbb3c9d6bb
16 changed files with 112 additions and 115 deletions
|
|
@ -7,10 +7,10 @@ import com.tangem.screens.AlreadyUsedWalletDialogPageObject.message
|
|||
import com.tangem.screens.AlreadyUsedWalletDialogPageObject.requestSupportButton
|
||||
import com.tangem.screens.AlreadyUsedWalletDialogPageObject.thisIsMyWalletButton
|
||||
import com.tangem.screens.AlreadyUsedWalletDialogPageObject.title
|
||||
import com.tangem.screens.ScanWarningDialogPageObject
|
||||
import com.tangem.screens.onActionIsUnavailableDialog
|
||||
import com.tangem.screens.onDataNotLoadedDialog
|
||||
import com.tangem.screens.onFailedTransactionDialog
|
||||
import com.tangem.screens.onScanWarningDialog
|
||||
import io.qameta.allure.kotlin.Allure.step
|
||||
|
||||
fun BaseTestCase.checkFailedTransactionDialog() {
|
||||
|
|
@ -31,21 +31,21 @@ fun BaseTestCase.checkFailedTransactionDialog() {
|
|||
}
|
||||
}
|
||||
|
||||
fun checkScanWarningDialog() {
|
||||
fun BaseTestCase.checkScanWarningDialog() {
|
||||
step("Assert 'Scan warning' dialog title is displayed") {
|
||||
ScanWarningDialogPageObject { warningTitle.isDisplayed() }
|
||||
onScanWarningDialog { warningTitle.assertIsDisplayed() }
|
||||
}
|
||||
step("Assert warning dialog message is displayed") {
|
||||
ScanWarningDialogPageObject { warningMessage.isDisplayed() }
|
||||
onScanWarningDialog { warningMessage.assertIsDisplayed() }
|
||||
}
|
||||
step("Assert 'Cancel' button is displayed") {
|
||||
ScanWarningDialogPageObject { cancelButton.isDisplayed() }
|
||||
onScanWarningDialog { cancelButton.assertIsDisplayed() }
|
||||
}
|
||||
step("Assert 'How to scan' button is displayed") {
|
||||
ScanWarningDialogPageObject { howToScanButton.isDisplayed() }
|
||||
onScanWarningDialog { howToScanButton.assertIsDisplayed() }
|
||||
}
|
||||
step("Assert 'Request support' button is displayed") {
|
||||
ScanWarningDialogPageObject { requestSupportButton.isDisplayed() }
|
||||
onScanWarningDialog { requestSupportButton.assertIsDisplayed() }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,36 +1,42 @@
|
|||
package com.tangem.screens
|
||||
|
||||
import com.kaspersky.kaspresso.screens.KScreen
|
||||
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
|
||||
import com.tangem.common.BaseTestCase
|
||||
import com.tangem.tap.features.scanfails.ui.ScanFailsDialogTestTags
|
||||
import com.tangem.wallet.R
|
||||
import io.github.kakaocup.kakao.text.KTextView
|
||||
import io.github.kakaocup.kakao.text.KButton
|
||||
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.kakao.common.utilities.getResourceString
|
||||
|
||||
object ScanWarningDialogPageObject : KScreen<ScanWarningDialogPageObject>() {
|
||||
class ScanWarningDialogPageObject(semanticsProvider: SemanticsNodeInteractionsProvider) :
|
||||
ComposeScreen<ScanWarningDialogPageObject>(semanticsProvider = semanticsProvider) {
|
||||
|
||||
override val layoutId: Int? = null
|
||||
override val viewClass: Class<*>? = null
|
||||
|
||||
val warningTitle = KTextView {
|
||||
withText(R.string.common_warning)
|
||||
val warningTitle: KNode = child {
|
||||
hasText(getResourceString(R.string.common_warning))
|
||||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
val warningMessage = KTextView {
|
||||
withText(R.string.alert_troubleshooting_scan_card_title)
|
||||
val warningMessage: KNode = child {
|
||||
hasText(getResourceString(R.string.alert_troubleshooting_scan_card_title))
|
||||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
val tryAgainButton = KButton {
|
||||
withId(R.id.try_again_button)
|
||||
val howToScanButton: KNode = child {
|
||||
hasTestTag(ScanFailsDialogTestTags.HOW_TO_SCAN_BUTTON)
|
||||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
val howToScanButton = KButton {
|
||||
withId(R.id.how_to_scan_button)
|
||||
val requestSupportButton: KNode = child {
|
||||
hasTestTag(ScanFailsDialogTestTags.REQUEST_SUPPORT_BUTTON)
|
||||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
val requestSupportButton = KButton {
|
||||
withId(R.id.request_support_button)
|
||||
val cancelButton: KNode = child {
|
||||
hasTestTag(ScanFailsDialogTestTags.CANCEL_BUTTON)
|
||||
useUnmergedTree = true
|
||||
}
|
||||
}
|
||||
|
||||
val cancelButton = KButton {
|
||||
withId(R.id.cancel_button)
|
||||
}
|
||||
}
|
||||
internal fun BaseTestCase.onScanWarningDialog(function: ScanWarningDialogPageObject.() -> Unit) =
|
||||
onComposeScreen(composeTestRule, function)
|
||||
|
|
@ -7,13 +7,26 @@ import com.tangem.common.constants.TestConstants.WAIT_UNTIL_TIMEOUT
|
|||
import com.tangem.common.core.TangemSdkError
|
||||
import com.tangem.common.extensions.clickAndWaitFor
|
||||
import com.tangem.common.extensions.clickWithAssertion
|
||||
import com.tangem.domain.redux.StateDialog
|
||||
import com.tangem.domain.card.ScanFailsRequester
|
||||
import kotlinx.coroutines.MainScope
|
||||
import kotlinx.coroutines.launch
|
||||
import com.tangem.scenarios.checkFailedTransactionDialog
|
||||
import com.tangem.scenarios.checkScanWarningDialog
|
||||
import com.tangem.scenarios.openMainScreen
|
||||
import com.tangem.scenarios.synchronizeAddresses
|
||||
import com.tangem.screens.*
|
||||
import com.tangem.tap.common.redux.global.GlobalAction
|
||||
import com.tangem.screens.ThirdPartyAppPageObject
|
||||
import com.tangem.screens.onCreateWalletStartScreen
|
||||
import com.tangem.screens.onDetailsScreen
|
||||
import com.tangem.screens.onDisclaimerScreen
|
||||
import com.tangem.screens.onFailedTransactionDialog
|
||||
import com.tangem.screens.onMainScreen
|
||||
import com.tangem.screens.onScanWarningDialog
|
||||
import com.tangem.screens.onSendAddressScreen
|
||||
import com.tangem.screens.onSendConfirmScreen
|
||||
import com.tangem.screens.onSendScreen
|
||||
import com.tangem.screens.onStoriesScreen
|
||||
import com.tangem.screens.onTokenDetailsScreen
|
||||
import com.tangem.screens.onTopBar
|
||||
import com.tangem.tap.domain.sdk.mocks.MockProvider
|
||||
import com.tangem.tap.store
|
||||
import dagger.hilt.android.testing.HiltAndroidTest
|
||||
|
|
@ -164,8 +177,10 @@ class FeedbackTest : BaseTestCase() {
|
|||
}
|
||||
step("Force show 'Scan warning' dialog"){
|
||||
runOnUiThread {
|
||||
val scanFailsState = StateDialog.ScanFailsDialog(source = StateDialog.ScanFailsSource.MAIN)
|
||||
store.dispatch(GlobalAction.ShowDialog(scanFailsState))
|
||||
val requester = store.state.daggerGraphState.scanFailsRequester!!
|
||||
MainScope().launch {
|
||||
requester.show(ScanFailsRequester.Source.MAIN)
|
||||
}
|
||||
}
|
||||
}
|
||||
step("Check 'Scan warning' dialog") {
|
||||
|
|
@ -173,7 +188,7 @@ class FeedbackTest : BaseTestCase() {
|
|||
checkScanWarningDialog()
|
||||
}
|
||||
step("Click on 'Request support' button") {
|
||||
ScanWarningDialogPageObject { requestSupportButton.click() }
|
||||
onScanWarningDialog { requestSupportButton.performClick() }
|
||||
}
|
||||
step("Assert 'Gmail' app is open") {
|
||||
ThirdPartyAppPageObject { assertElementWithTextExists(gmailText) }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue