Skip to content

Commit b4bf0d5

Browse files
committed
Add unit test for system vpn settings available
1 parent b5768ba commit b4bf0d5

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/VpnSettingsViewModelTest.kt

+16
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import net.mullvad.mullvadvpn.model.WireguardTunnelOptions
2727
import net.mullvad.mullvadvpn.repository.SettingsRepository
2828
import net.mullvad.mullvadvpn.usecase.PortRangeUseCase
2929
import net.mullvad.mullvadvpn.usecase.RelayListUseCase
30+
import net.mullvad.mullvadvpn.usecase.SystemVpnSettingsUseCase
3031
import org.junit.jupiter.api.AfterEach
3132
import org.junit.jupiter.api.BeforeEach
3233
import org.junit.jupiter.api.Test
@@ -39,6 +40,7 @@ class VpnSettingsViewModelTest {
3940
private val mockResources: Resources = mockk()
4041
private val mockPortRangeUseCase: PortRangeUseCase = mockk()
4142
private val mockRelayListUseCase: RelayListUseCase = mockk()
43+
private val mockSystemVpnSettingsUseCase: SystemVpnSettingsUseCase = mockk(relaxed = true)
4244

4345
private val mockSettingsUpdate = MutableStateFlow<Settings?>(null)
4446
private val portRangeFlow = MutableStateFlow(emptyList<PortRange>())
@@ -56,6 +58,7 @@ class VpnSettingsViewModelTest {
5658
resources = mockResources,
5759
portRangeUseCase = mockPortRangeUseCase,
5860
relayListUseCase = mockRelayListUseCase,
61+
systemVpnSettingsUseCase = mockSystemVpnSettingsUseCase,
5962
dispatcher = UnconfinedTestDispatcher()
6063
)
6164
}
@@ -146,4 +149,17 @@ class VpnSettingsViewModelTest {
146149
mockRelayListUseCase.updateSelectedWireguardConstraints(wireguardConstraints)
147150
}
148151
}
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+
}
149165
}

0 commit comments

Comments
 (0)