Updated on 2026-08-14

This commit is contained in:
Tangem 2026-07-15 11:21:11 +01:00
parent 68297064be
commit 718040195a
2 changed files with 15 additions and 15 deletions

View file

@ -88,7 +88,7 @@ internal class AddressBookListModelTest {
val syncGate = CompletableDeferred<Unit>()
coEvery { syncAddressBooksUseCase() } coAnswers { syncGate.await(); Unit.right() }
every { getVerifiedContactsInteractor.getVerifiedContacts(query = "", userWalletId = null) } returns
flowOf(listOf(verifiedContact(id = "1", name = "Alice")))
flowOf(listOf(contact(id = "1", name = "Alice")))
// Act
val model = createModel(testScope = this, mode = AddressBookRoute.ListMode.Default)
@ -109,7 +109,7 @@ internal class AddressBookListModelTest {
fun `GIVEN default mode AND verified contacts WHEN created THEN content shown`() = runTest {
// Arrange
every { getVerifiedContactsInteractor.getVerifiedContacts(query = "", userWalletId = null) } returns
flowOf(listOf(verifiedContact(id = "1", name = "Alice"), verifiedContact(id = "2", name = "Bob")))
flowOf(listOf(contact(id = "1", name = "Alice"), contact(id = "2", name = "Bob")))
// Act
val model = createModel(testScope = this, mode = AddressBookRoute.ListMode.Default)
@ -139,7 +139,7 @@ internal class AddressBookListModelTest {
// Arrange
var clickedId: String? = null
every { getVerifiedContactsInteractor.getVerifiedContacts(query = "", userWalletId = null) } returns
flowOf(listOf(verifiedContact(id = "42", name = "Alice")))
flowOf(listOf(contact(id = "42", name = "Alice")))
val model = createModel(
testScope = this,
mode = AddressBookRoute.ListMode.Default,
@ -159,7 +159,7 @@ internal class AddressBookListModelTest {
runTest {
// Arrange
every { getVerifiedContactsInteractor.getVerifiedContacts(query = "", userWalletId = null) } returns
flowOf(listOf(verifiedContact(id = "1", name = "Alice"), verifiedContact(id = "2", name = "Bob")))
flowOf(listOf(contact(id = "1", name = "Alice"), contact(id = "2", name = "Bob")))
// Act
createModel(testScope = this, mode = AddressBookRoute.ListMode.Default)
@ -190,7 +190,7 @@ internal class AddressBookListModelTest {
fun `GIVEN selector mode WHEN contact picked THEN ContactSelectedInSend sent`() = runTest {
// Arrange — a contact with a single ethereum address matches the selection network.
every { getVerifiedContactsInteractor.getVerifiedContacts(query = "", userWalletId = null) } returns
flowOf(listOf(verifiedContact(id = "42", name = "Alice")))
flowOf(listOf(contact(id = "42", name = "Alice")))
val model = createModel(
testScope = this,
mode = AddressBookRoute.ListMode.Selector(networkId = "ethereum"),
@ -205,7 +205,7 @@ internal class AddressBookListModelTest {
verify(exactly = 1) { analyticsSender.sendContactSelectedInSend(contactId = "42", scope = any()) }
}
private fun verifiedContact(id: String, name: String): Contact = Contact(
private fun contact(id: String, name: String): Contact = Contact(
id = ContactId(id),
walletId = UserWalletId("a"),
name = ContactName(name).getOrNull()!!,

View file

@ -23,7 +23,7 @@ internal class UpdateAddressBookListContentTransformerTest {
@Test
fun `GIVEN contacts in one wallet WHEN blank query THEN no chips`() {
// Arrange
val all = listOf(verified(wallet1, "Alice"), verified(wallet1, "Bob"))
val all = listOf(contact(wallet1, "Alice"), contact(wallet1, "Bob"))
// Act
val result = transform(allContacts = all, matchedContacts = all)
@ -40,7 +40,7 @@ internal class UpdateAddressBookListContentTransformerTest {
@Test
fun `GIVEN contacts in two wallets WHEN blank query THEN All plus per-wallet chips with All selected`() {
// Arrange
val all = listOf(verified(wallet1, "Alice"), verified(wallet2, "Bob"))
val all = listOf(contact(wallet1, "Alice"), contact(wallet2, "Bob"))
// Act
val result = transform(allContacts = all, matchedContacts = all)
@ -58,7 +58,7 @@ internal class UpdateAddressBookListContentTransformerTest {
@Test
fun `GIVEN two wallets WHEN a wallet chip selected THEN list filtered but chips unchanged`() {
// Arrange
val all = listOf(verified(wallet1, "Alice"), verified(wallet2, "Bob"))
val all = listOf(contact(wallet1, "Alice"), contact(wallet2, "Bob"))
// Act
val result = transform(allContacts = all, matchedContacts = all, selectedWalletId = wallet2)
@ -75,8 +75,8 @@ internal class UpdateAddressBookListContentTransformerTest {
@Test
fun `GIVEN two wallets WHEN query narrows to one wallet THEN chips kept as All plus that wallet`() {
// Arrange — the book spans two wallets, but the query matched only wallet1 in the domain
val all = listOf(verified(wallet1, "Antonio"), verified(wallet2, "Bob"))
val matched = listOf(verified(wallet1, "Antonio"))
val all = listOf(contact(wallet1, "Antonio"), contact(wallet2, "Bob"))
val matched = listOf(contact(wallet1, "Antonio"))
// Act
val result = transform(allContacts = all, matchedContacts = matched, query = "Anto")
@ -91,8 +91,8 @@ internal class UpdateAddressBookListContentTransformerTest {
@Test
fun `GIVEN selected wallet no longer matches query THEN falls back to All`() {
// Arrange
val all = listOf(verified(wallet1, "Antonio"), verified(wallet2, "Bob"))
val matched = listOf(verified(wallet1, "Antonio"))
val all = listOf(contact(wallet1, "Antonio"), contact(wallet2, "Bob"))
val matched = listOf(contact(wallet1, "Antonio"))
// Act — selected wallet2, but query matched only wallet1
val result = transform(
@ -120,7 +120,7 @@ internal class UpdateAddressBookListContentTransformerTest {
@Test
fun `GIVEN query matches nothing WHEN non-blank query THEN nothing found and chips hidden`() {
// Arrange
val all = listOf(verified(wallet1, "Alice"), verified(wallet2, "Bob"))
val all = listOf(contact(wallet1, "Alice"), contact(wallet2, "Bob"))
// Act
val result = transform(allContacts = all, matchedContacts = emptyList(), query = "Zzz")
@ -156,7 +156,7 @@ internal class UpdateAddressBookListContentTransformerTest {
private fun wallet(id: String, name: String): UserWallet =
MockUserWalletFactory.create().copy(walletId = UserWalletId(stringValue = id), name = name)
private fun verified(walletId: String, name: String): Contact = Contact(
private fun contact(walletId: String, name: String): Contact = Contact(
id = ContactId(name + walletId),
walletId = UserWalletId(stringValue = walletId),
name = requireNotNull(ContactName(name).getOrNull()) { "invalid test name" },