diff options
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt | 5 | ||||
| -rw-r--r-- | android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt index 141e854b81..36e6864a80 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModel.kt @@ -8,6 +8,7 @@ import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch @@ -35,14 +36,14 @@ class AddTimeViewModel( val uiState: StateFlow<Lc<Unit, AddTimeUiState>> = combine( - paymentUseCase.paymentAvailability, + paymentUseCase.paymentAvailability.filterNotNull(), paymentUseCase.purchaseResult, connectionProxy.tunnelState, ) { paymentAvailability, purchaseResult, tunnelState -> Lc.Content( AddTimeUiState( purchaseState = purchaseResult?.toPurchaseState(), - billingPaymentState = paymentAvailability?.toPaymentState(), + billingPaymentState = paymentAvailability.toPaymentState(), tunnelStateBlocked = tunnelState.isBlocked(), showSitePayment = !isPlayBuild, ) diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt index 1b9c4a9ef3..a40d1f02a2 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AddTimeViewModelTest.kt @@ -21,6 +21,7 @@ import net.mullvad.mullvadvpn.lib.model.TunnelState import net.mullvad.mullvadvpn.lib.payment.model.PaymentAvailability import net.mullvad.mullvadvpn.lib.payment.model.PaymentProduct import net.mullvad.mullvadvpn.lib.payment.model.ProductId +import net.mullvad.mullvadvpn.lib.payment.model.ProductPrice import net.mullvad.mullvadvpn.lib.payment.model.PurchaseResult import net.mullvad.mullvadvpn.lib.payment.model.VerificationResult import net.mullvad.mullvadvpn.lib.shared.AccountRepository @@ -174,8 +175,12 @@ class AddTimeViewModelTest { @Test fun `purchaseResult emitting Success should result in success dialog state`() = runTest { // Arrange - val result = PurchaseState.Success(ProductId("one_month")) + val productId = ProductId("one_month") + val paymentProduct = + PaymentProduct(productId = productId, price = ProductPrice("€5.00"), status = null) + val result = PurchaseState.Success(productId) val purchaseResultData = PurchaseResult.Completed.Success(ProductId("one_month")) + paymentAvailability.emit(PaymentAvailability.ProductsAvailable(listOf(paymentProduct))) // Act, Assert viewModel.uiState.test { |
