Updated on 2026-08-14

This commit is contained in:
Tangem 2026-07-16 17:45:25 +04:00
parent 0b81b905c3
commit 50332186fa
47 changed files with 38 additions and 408 deletions

View file

@ -1,8 +1,6 @@
package com.tangem.data.account.utils
import com.tangem.blockchain.common.Blockchain
import com.tangem.core.configtoggle.FeatureToggles
import com.tangem.core.configtoggle.feature.FeatureTogglesManager
import com.tangem.data.account.converter.CryptoPortfolioConverter
import com.tangem.data.common.currency.UserTokensResponseFactory
import com.tangem.data.common.network.NetworkFactory
@ -34,7 +32,6 @@ internal class DefaultWalletAccountsResponseFactory @Inject constructor(
private val cryptoPortfolioCF: CryptoPortfolioConverter.Factory,
private val userTokensResponseFactory: UserTokensResponseFactory,
private val networkFactory: NetworkFactory,
private val featureTogglesManager: FeatureTogglesManager,
) {
fun create(userWalletId: UserWalletId, userTokensResponse: UserTokensResponse?): GetWalletAccountsResponse {
@ -79,11 +76,10 @@ internal class DefaultWalletAccountsResponseFactory @Inject constructor(
private fun UserWallet.extraDefaultBlockchains(): List<Blockchain> {
val batchId = (this as? UserWallet.Cold)?.scanResponse?.card?.batchId ?: return emptyList()
return when {
batchId == ADI_PROMO_BATCH_ID &&
featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED) ->
listOf(Blockchain.Adi)
else -> emptyList()
return if (batchId == ADI_PROMO_BATCH_ID) {
listOf(Blockchain.Adi)
} else {
emptyList()
}
}

View file

@ -2,8 +2,6 @@ package com.tangem.data.account.utils
import com.google.common.truth.Truth
import com.tangem.blockchain.common.Blockchain
import com.tangem.core.configtoggle.FeatureToggles
import com.tangem.core.configtoggle.feature.FeatureTogglesManager
import com.tangem.data.account.converter.CryptoPortfolioConverter
import com.tangem.data.account.converter.createWalletAccountDTO
import com.tangem.data.account.utils.GetWalletAccountsResponseExtTest.Companion.createUserToken
@ -35,14 +33,12 @@ class DefaultWalletAccountsResponseFactoryTest {
private val cryptoPortfolioConverter = mockk<CryptoPortfolioConverter>()
private val userTokensResponseFactory = mockk<UserTokensResponseFactory>()
private val networkFactory = mockk<NetworkFactory>()
private val featureTogglesManager = mockk<FeatureTogglesManager>()
private val factory = DefaultWalletAccountsResponseFactory(
userWalletsListRepository = userWalletsListRepository,
cryptoPortfolioCF = cryptoPortfolioCF,
userTokensResponseFactory = userTokensResponseFactory,
networkFactory = networkFactory,
featureTogglesManager = featureTogglesManager,
)
private val userWalletId = UserWalletId("011")
@ -221,7 +217,7 @@ class DefaultWalletAccountsResponseFactoryTest {
}
@Test
fun `create passes ADI as extra blockchain when batch is BB000053 and toggle is on`() = runTest {
fun `create passes ADI as extra blockchain when batch is BB000053`() = runTest {
// Arrange
val userWallet = mockk<UserWallet.Cold>(relaxed = true) {
every { walletId } returns userWalletId
@ -229,9 +225,6 @@ class DefaultWalletAccountsResponseFactoryTest {
}
every { userWalletsListRepository.userWallets } returns MutableStateFlow(listOf(userWallet))
every {
featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED)
} returns true
val accounts = AccountList.empty(userWallet.walletId).accounts
.filterIsInstance<Account.CryptoPortfolio>()
@ -265,51 +258,7 @@ class DefaultWalletAccountsResponseFactoryTest {
}
@Test
fun `create passes no extra blockchains when batch is BB000053 but toggle is off`() = runTest {
// Arrange
val userWallet = mockk<UserWallet.Cold>(relaxed = true) {
every { walletId } returns userWalletId
every { scanResponse.card.batchId } returns "BB000053"
}
every { userWalletsListRepository.userWallets } returns MutableStateFlow(listOf(userWallet))
every {
featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED)
} returns false
val accounts = AccountList.empty(userWallet.walletId).accounts
.filterIsInstance<Account.CryptoPortfolio>()
val defaultResponse = UserTokensResponse(
group = UserTokensResponse.GroupType.NETWORK,
sort = UserTokensResponse.SortType.BALANCE,
tokens = emptyList(),
)
every {
userTokensResponseFactory.createDefaultResponse(
userWallet = userWallet,
networkFactory = networkFactory,
accountId = accounts.first().accountId,
extraBlockchains = emptyList(),
)
} returns defaultResponse
every { cryptoPortfolioConverter.convertListBack(accounts) } returns emptyList()
// Act
factory.create(userWalletId, null)
// Assert
coVerifyOrder {
userTokensResponseFactory.createDefaultResponse(
userWallet = userWallet,
networkFactory = networkFactory,
accountId = accounts.first().accountId,
extraBlockchains = emptyList(),
)
}
}
@Test
fun `create passes no extra blockchains when batch is not BB000053 even if toggle is on`() = runTest {
fun `create passes no extra blockchains when batch is not BB000053`() = runTest {
// Arrange
val userWallet = mockk<UserWallet.Cold>(relaxed = true) {
every { walletId } returns userWalletId
@ -317,9 +266,6 @@ class DefaultWalletAccountsResponseFactoryTest {
}
every { userWalletsListRepository.userWallets } returns MutableStateFlow(listOf(userWallet))
every {
featureTogglesManager.isFeatureEnabled(FeatureToggles.AND_15402_ADI_MAIN_SCREEN_DEFAULT_ENABLED)
} returns true
val accounts = AccountList.empty(userWallet.walletId).accounts
.filterIsInstance<Account.CryptoPortfolio>()