@@ -16,6 +16,7 @@ import net.mullvad.mullvadvpn.compose.state.VoucherDialogState
16
16
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
17
17
import net.mullvad.mullvadvpn.lib.model.RedeemVoucherError
18
18
import net.mullvad.mullvadvpn.lib.model.RedeemVoucherSuccess
19
+ import net.mullvad.mullvadvpn.lib.model.VoucherCode
19
20
import net.mullvad.mullvadvpn.lib.shared.VoucherRepository
20
21
import org.joda.time.DateTime
21
22
import org.junit.jupiter.api.AfterEach
@@ -45,19 +46,20 @@ class VoucherDialogViewModelTest {
45
46
@Test
46
47
fun `ensure onRedeem invokes submit on VoucherRedeemer with same voucher code` () = runTest {
47
48
val voucher = DUMMY_INVALID_VOUCHER
49
+ val parsedVoucher = VoucherCode .fromString(voucher).getOrNull()!!
48
50
49
51
// Arrange
50
52
val timeAdded = 0L
51
53
val newExpiry = DateTime ()
52
- coEvery { mockVoucherRepository.submitVoucher(voucher ) } returns
54
+ coEvery { mockVoucherRepository.submitVoucher(parsedVoucher ) } returns
53
55
RedeemVoucherSuccess (timeAdded, newExpiry).right()
54
56
55
57
// Act
56
58
assertIs<VoucherDialogState .Default >(viewModel.uiState.value.voucherState)
57
59
viewModel.onRedeem(voucher)
58
60
59
61
// Assert
60
- coVerify(exactly = 1 ) { mockVoucherRepository.submitVoucher(voucher ) }
62
+ coVerify(exactly = 1 ) { mockVoucherRepository.submitVoucher(parsedVoucher ) }
61
63
}
62
64
63
65
@Test
@@ -66,8 +68,9 @@ class VoucherDialogViewModelTest {
66
68
67
69
// Arrange
68
70
every { mockVoucherSubmission.timeAdded } returns 0
69
- coEvery { mockVoucherRepository.submitVoucher(voucher) } returns
70
- RedeemVoucherError .InvalidVoucher .left()
71
+ coEvery {
72
+ mockVoucherRepository.submitVoucher(VoucherCode .fromString(voucher).getOrNull()!! )
73
+ } returns RedeemVoucherError .InvalidVoucher .left()
71
74
72
75
// Act, Assert
73
76
viewModel.uiState.test {
@@ -84,8 +87,9 @@ class VoucherDialogViewModelTest {
84
87
85
88
// Arrange
86
89
every { mockVoucherSubmission.timeAdded } returns 0
87
- coEvery { mockVoucherRepository.submitVoucher(voucher) } returns
88
- RedeemVoucherSuccess (0 , DateTime ()).right()
90
+ coEvery {
91
+ mockVoucherRepository.submitVoucher(VoucherCode .fromString(voucher).getOrNull()!! )
92
+ } returns RedeemVoucherSuccess (0 , DateTime ()).right()
89
93
90
94
// Act, Assert
91
95
viewModel.uiState.test {
@@ -102,8 +106,9 @@ class VoucherDialogViewModelTest {
102
106
103
107
// Arrange
104
108
every { mockVoucherSubmission.timeAdded } returns 0
105
- coEvery { mockVoucherRepository.submitVoucher(voucher) } returns
106
- RedeemVoucherError .VoucherAlreadyUsed .left()
109
+ coEvery {
110
+ mockVoucherRepository.submitVoucher(VoucherCode .fromString(voucher).getOrNull()!! )
111
+ } returns RedeemVoucherError .VoucherAlreadyUsed .left()
107
112
108
113
// Act, Assert
109
114
viewModel.uiState.test {
0 commit comments