Updated on 2026-08-14
This commit is contained in:
parent
fcd85fba97
commit
2d3e5fdb7a
5 changed files with 78 additions and 3 deletions
|
|
@ -3,7 +3,9 @@ package com.tangem.screens
|
|||
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
|
||||
import com.tangem.common.BaseTestCase
|
||||
import com.tangem.core.ui.test.BaseButtonTestTags
|
||||
import com.tangem.core.ui.test.FooterTestTags
|
||||
import com.tangem.core.ui.test.SendAddressScreenTestTags
|
||||
import com.tangem.core.ui.test.TopAppBarTestTags
|
||||
import com.tangem.features.send.v2.impl.R
|
||||
import io.github.kakaocup.compose.node.element.ComposeScreen
|
||||
import io.github.kakaocup.compose.node.element.ComposeScreen.Companion.onComposeScreen
|
||||
|
|
@ -21,6 +23,12 @@ class SendAddressPageObject(semanticsProvider: SemanticsNodeInteractionsProvider
|
|||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
val topAppBarTitle: KNode = child {
|
||||
hasTestTag(TopAppBarTestTags.TITLE)
|
||||
hasText(getResourceString(CoreUiR.string.common_address))
|
||||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
val addressTextFieldTitle: KNode = child {
|
||||
hasTestTag(SendAddressScreenTestTags.ADDRESS_TEXT_FIELD_TITLE)
|
||||
useUnmergedTree = true
|
||||
|
|
@ -31,6 +39,19 @@ class SendAddressPageObject(semanticsProvider: SemanticsNodeInteractionsProvider
|
|||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
val addressTextFieldHint: KNode = child {
|
||||
hasParent(withTestTag(SendAddressScreenTestTags.ADDRESS_TEXT_FIELD))
|
||||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
fun recipientNetworkCaution(network: String): KNode = child {
|
||||
val expectedText = getResourceString(R.string.send_recipient_address_footer, network)
|
||||
.replace("**", "")
|
||||
hasText(expectedText, substring = true)
|
||||
hasTestTag(FooterTestTags.FOOTER_TEXT)
|
||||
useUnmergedTree = true
|
||||
}
|
||||
|
||||
val addressPasteButton: KNode = child {
|
||||
hasTestTag(SendAddressScreenTestTags.ADDRESS_PASTE_BUTTON)
|
||||
useUnmergedTree = true
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ class RecentBlockTest : BaseTestCase() {
|
|||
}
|
||||
}
|
||||
|
||||
@AllureId("4596")
|
||||
@AllureId("4598")
|
||||
@DisplayName("Send (address screen): check 'Recent' block, transaction history does not load")
|
||||
@Test
|
||||
fun recentBlockTransactionHistoryDoesNotLoadTest() {
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ class SendAddressScreenTest : BaseTestCase() {
|
|||
}
|
||||
}
|
||||
|
||||
@AllureId("4004")
|
||||
@AllureId("4009")
|
||||
@DisplayName("Send (address screen): check ENS name")
|
||||
@Test
|
||||
fun sendEnsNameTest() {
|
||||
|
|
@ -580,4 +580,50 @@ class SendAddressScreenTest : BaseTestCase() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@AllureId("4567")
|
||||
@DisplayName("Send (address screen): check address field")
|
||||
@Test
|
||||
fun checkSendAddressScreenTest() {
|
||||
val tokenName = "Ethereum"
|
||||
val sendAmount = "1"
|
||||
val hint = getResourceString(R.string.send_enter_address_field_ens)
|
||||
val recipient = getResourceString(R.string.send_recipient)
|
||||
|
||||
setupHooks().run {
|
||||
step("Open 'Main Screen'") {
|
||||
openMainScreen()
|
||||
}
|
||||
step("Synchronize addresses") {
|
||||
synchronizeAddresses()
|
||||
}
|
||||
step("Open 'Send Address' screen") {
|
||||
openSendAddressScreen(tokenName, sendAmount)
|
||||
}
|
||||
step("Assert 'Address' screen title is displayed") {
|
||||
onSendAddressScreen { topAppBarTitle.assertIsDisplayed() }
|
||||
}
|
||||
step("Assert address text field title is displayed") {
|
||||
onSendAddressScreen { addressTextFieldTitle.assertTextContains(recipient) }
|
||||
}
|
||||
step("Assert address text field is displayed") {
|
||||
onSendAddressScreen { addressTextField.assertIsDisplayed() }
|
||||
}
|
||||
step("Assert address text field hint contains text '$hint'") {
|
||||
onSendAddressScreen { addressTextFieldHint.assertTextContains(hint) }
|
||||
}
|
||||
step("Assert 'QR' button is displayed") {
|
||||
onSendAddressScreen { qrButton.assertIsDisplayed() }
|
||||
}
|
||||
step("Assert 'Paste' button is displayed") {
|
||||
onSendAddressScreen { addressPasteButton.assertIsDisplayed() }
|
||||
}
|
||||
step("Assert recipient network caution is displayed for network '$tokenName'") {
|
||||
onSendAddressScreen { recipientNetworkCaution(tokenName).assertIsDisplayed() }
|
||||
}
|
||||
step("Assert 'Next' button is disabled") {
|
||||
onSendAddressScreen { nextButton.assertIsNotEnabled() }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -8,10 +8,12 @@ import androidx.compose.material3.Text
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resolveAnnotatedReference
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.test.FooterTestTags
|
||||
|
||||
/**
|
||||
* Container for footer info below the text field
|
||||
|
|
@ -37,7 +39,8 @@ fun FooterContainer(
|
|||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier
|
||||
.padding(paddingValues),
|
||||
.padding(paddingValues)
|
||||
.testTag(FooterTestTags.FOOTER_TEXT),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
package com.tangem.core.ui.test
|
||||
|
||||
object FooterTestTags {
|
||||
const val FOOTER_TEXT = "FOOTER_TEXT"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue