From 0bd23be25ffd169f9d41aa0f9d112491f734fead Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 15 Jul 2026 17:28:02 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/data/pay/di/TangemPayDataModule.kt | 2 ++ .../pay/usecase/CreateVirtualAccountOrderUseCase.kt | 13 +++++++++---- .../usecase/CreateVirtualAccountOrderUseCaseTest.kt | 7 ++++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/data/visa/src/main/kotlin/com/tangem/data/pay/di/TangemPayDataModule.kt b/data/visa/src/main/kotlin/com/tangem/data/pay/di/TangemPayDataModule.kt index a363e421d0..ae74b0c56c 100644 --- a/data/visa/src/main/kotlin/com/tangem/data/pay/di/TangemPayDataModule.kt +++ b/data/visa/src/main/kotlin/com/tangem/data/pay/di/TangemPayDataModule.kt @@ -298,10 +298,12 @@ internal interface TangemPayDataModule { fun provideCreateVirtualAccountOrderUseCase( onboardingRepository: OnboardingRepository, pollingUseCase: StartTangemPayOrderPollingUseCase, + appCoroutineScope: AppCoroutineScope, ): CreateVirtualAccountOrderUseCase { return CreateVirtualAccountOrderUseCase( onboardingRepository = onboardingRepository, pollingUseCase = pollingUseCase, + appCoroutineScope = appCoroutineScope, ) } } diff --git a/domain/visa/src/main/kotlin/com/tangem/domain/pay/usecase/CreateVirtualAccountOrderUseCase.kt b/domain/visa/src/main/kotlin/com/tangem/domain/pay/usecase/CreateVirtualAccountOrderUseCase.kt index d2c74028d8..2ad979a933 100644 --- a/domain/visa/src/main/kotlin/com/tangem/domain/pay/usecase/CreateVirtualAccountOrderUseCase.kt +++ b/domain/visa/src/main/kotlin/com/tangem/domain/pay/usecase/CreateVirtualAccountOrderUseCase.kt @@ -7,6 +7,8 @@ import com.tangem.domain.pay.model.OrderStatus import com.tangem.domain.pay.model.TangemPayOrderInfo import com.tangem.domain.pay.repository.OnboardingRepository import com.tangem.domain.visa.error.VisaApiError +import com.tangem.utils.coroutines.AppCoroutineScope +import kotlinx.coroutines.launch import java.util.UUID /** @@ -20,6 +22,7 @@ import java.util.UUID class CreateVirtualAccountOrderUseCase( private val onboardingRepository: OnboardingRepository, private val pollingUseCase: StartTangemPayOrderPollingUseCase, + private val appCoroutineScope: AppCoroutineScope, ) { suspend operator fun invoke( userWalletId: UserWalletId, @@ -33,10 +36,12 @@ class CreateVirtualAccountOrderUseCase( idempotencyKey = UUID.randomUUID().toString(), ).bind() onboardingRepository.storeVirtualAccountOrderId(userWalletId = userWalletId, vaOrderId = vaOrderId) - pollingUseCase.invoke( - order = TangemPayOrderInfo(orderId = vaOrderId, orderStatus = OrderStatus.NEW), - userWalletId = userWalletId, - ) + appCoroutineScope.launch { + pollingUseCase.invoke( + order = TangemPayOrderInfo(orderId = vaOrderId, orderStatus = OrderStatus.NEW), + userWalletId = userWalletId, + ) + } } } } \ No newline at end of file diff --git a/domain/visa/src/test/kotlin/com/tangem/domain/pay/usecase/CreateVirtualAccountOrderUseCaseTest.kt b/domain/visa/src/test/kotlin/com/tangem/domain/pay/usecase/CreateVirtualAccountOrderUseCaseTest.kt index c300a5e09e..306f9da329 100644 --- a/domain/visa/src/test/kotlin/com/tangem/domain/pay/usecase/CreateVirtualAccountOrderUseCaseTest.kt +++ b/domain/visa/src/test/kotlin/com/tangem/domain/pay/usecase/CreateVirtualAccountOrderUseCaseTest.kt @@ -6,6 +6,7 @@ import com.google.common.truth.Truth.assertThat import com.tangem.domain.models.wallet.UserWalletId import com.tangem.domain.pay.repository.OnboardingRepository import com.tangem.domain.visa.error.VisaApiError +import com.tangem.test.core.TestAppCoroutineScope import io.mockk.coEvery import io.mockk.coVerify import io.mockk.mockk @@ -16,7 +17,11 @@ internal class CreateVirtualAccountOrderUseCaseTest { private val onboardingRepository: OnboardingRepository = mockk(relaxUnitFun = true) private val pollingUseCase: StartTangemPayOrderPollingUseCase = mockk(relaxed = true) - private val useCase = CreateVirtualAccountOrderUseCase(onboardingRepository, pollingUseCase) + private val useCase = CreateVirtualAccountOrderUseCase( + onboardingRepository = onboardingRepository, + pollingUseCase = pollingUseCase, + appCoroutineScope = TestAppCoroutineScope(), + ) private val userWalletId = UserWalletId("1234567890ABCDEF") private val paymentAccountAddress = "0xcollateral"