1
1
package net.mullvad.mullvadvpn.viewmodel
2
2
3
3
import app.cash.turbine.test
4
+ import arrow.core.Either
4
5
import arrow.core.left
5
6
import arrow.core.right
6
7
import io.mockk.coEvery
7
8
import io.mockk.coVerify
8
9
import io.mockk.every
9
10
import io.mockk.mockk
11
+ import io.mockk.mockkStatic
10
12
import java.time.Duration
11
13
import kotlin.test.assertIs
12
14
import kotlinx.coroutines.flow.MutableStateFlow
@@ -20,6 +22,7 @@ import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodSetting
20
22
import net.mullvad.mullvadvpn.lib.model.TestApiAccessMethodError
21
23
import net.mullvad.mullvadvpn.lib.model.UnknownApiAccessMethodError
22
24
import net.mullvad.mullvadvpn.repository.ApiAccessRepository
25
+ import net.mullvad.mullvadvpn.util.delayAtLeast
23
26
import org.junit.jupiter.api.Assertions.assertEquals
24
27
import org.junit.jupiter.api.BeforeEach
25
28
import org.junit.jupiter.api.Test
@@ -38,6 +41,7 @@ class ApiAccessMethodDetailsViewModelTest {
38
41
39
42
@BeforeEach
40
43
fun setUp () {
44
+ mockkStatic(DELAY_UTIL )
41
45
every { mockApiAccessRepository.apiAccessMethodSettingById(apiAccessMethodId) } returns
42
46
accessMethodFlow
43
47
every { mockApiAccessRepository.enabledApiAccessMethods() } returns enabledMethodsFlow
@@ -58,6 +62,8 @@ class ApiAccessMethodDetailsViewModelTest {
58
62
Unit .right()
59
63
coEvery { mockApiAccessRepository.setCurrentApiAccessMethod(any()) } returns
60
64
Unit .right()
65
+ coEvery { delayAtLeast<Either <TestApiAccessMethodError , Unit >>(any(), any()) } returns
66
+ Unit .right()
61
67
62
68
// Act
63
69
apiAccessMethodDetailsViewModel.setCurrentMethod()
@@ -177,4 +183,8 @@ class ApiAccessMethodDetailsViewModelTest {
177
183
)
178
184
}
179
185
}
186
+
187
+ companion object {
188
+ private const val DELAY_UTIL = " net.mullvad.mullvadvpn.util.DelayKt"
189
+ }
180
190
}
0 commit comments