@@ -27,6 +27,7 @@ import net.mullvad.mullvadvpn.model.WireguardTunnelOptions
27
27
import net.mullvad.mullvadvpn.repository.SettingsRepository
28
28
import net.mullvad.mullvadvpn.usecase.PortRangeUseCase
29
29
import net.mullvad.mullvadvpn.usecase.RelayListUseCase
30
+ import net.mullvad.mullvadvpn.usecase.SystemVpnSettingsUseCase
30
31
import org.junit.jupiter.api.AfterEach
31
32
import org.junit.jupiter.api.BeforeEach
32
33
import org.junit.jupiter.api.Test
@@ -39,6 +40,7 @@ class VpnSettingsViewModelTest {
39
40
private val mockResources: Resources = mockk()
40
41
private val mockPortRangeUseCase: PortRangeUseCase = mockk()
41
42
private val mockRelayListUseCase: RelayListUseCase = mockk()
43
+ private val mockSystemVpnSettingsUseCase: SystemVpnSettingsUseCase = mockk(relaxed = true )
42
44
43
45
private val mockSettingsUpdate = MutableStateFlow <Settings ?>(null )
44
46
private val portRangeFlow = MutableStateFlow (emptyList<PortRange >())
@@ -56,6 +58,7 @@ class VpnSettingsViewModelTest {
56
58
resources = mockResources,
57
59
portRangeUseCase = mockPortRangeUseCase,
58
60
relayListUseCase = mockRelayListUseCase,
61
+ systemVpnSettingsUseCase = mockSystemVpnSettingsUseCase,
59
62
dispatcher = UnconfinedTestDispatcher ()
60
63
)
61
64
}
@@ -146,4 +149,17 @@ class VpnSettingsViewModelTest {
146
149
mockRelayListUseCase.updateSelectedWireguardConstraints(wireguardConstraints)
147
150
}
148
151
}
152
+
153
+ @Test
154
+ fun `given VpnSettingsViewModel when use case systemVpnSettingsAvailable is true then ui state isSystemVpnSettingsAvailable should be true` () =
155
+ runTest {
156
+ val systemVpnSettingsAvailable = true
157
+
158
+ every { mockSystemVpnSettingsUseCase.systemVpnSettingsAvailable() } returns
159
+ systemVpnSettingsAvailable
160
+
161
+ viewModel.uiState.test {
162
+ assertEquals(systemVpnSettingsAvailable, awaitItem().systemVpnSettingsAvailable)
163
+ }
164
+ }
149
165
}
0 commit comments