diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-08-25 12:37:00 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2023-09-07 09:05:53 +0200 |
| commit | cc729a235a1c792e43384bd154c66ee723178db3 (patch) | |
| tree | 6dce181dfdc9450b2a9d51ff01cb8843bb730a47 /android/app/src/test | |
| parent | 67d7cd4e52ef07d5bff65440081d61dceaf270b4 (diff) | |
| download | mullvadvpn-cc729a235a1c792e43384bd154c66ee723178db3.tar.xz mullvadvpn-cc729a235a1c792e43384bd154c66ee723178db3.zip | |
Add unit tests for out of time behaviour
Diffstat (limited to 'android/app/src/test')
| -rw-r--r-- | android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt index 776136d1c5..517281e6c2 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ConnectViewModelTest.kt @@ -11,8 +11,10 @@ import io.mockk.unmockkAll import io.mockk.verify import kotlin.test.assertEquals import kotlin.test.assertIs +import kotlinx.coroutines.async import kotlinx.coroutines.cancel import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.first import kotlinx.coroutines.test.runTest import net.mullvad.mullvadvpn.compose.state.ConnectNotificationState import net.mullvad.mullvadvpn.compose.state.ConnectUiState @@ -36,6 +38,7 @@ import net.mullvad.mullvadvpn.ui.serviceconnection.authTokenCache import net.mullvad.mullvadvpn.ui.serviceconnection.connectionProxy import net.mullvad.mullvadvpn.util.appVersionCallbackFlow import net.mullvad.talpid.tunnel.ErrorState +import net.mullvad.talpid.tunnel.ErrorStateCause import net.mullvad.talpid.util.EventNotifier import org.joda.time.DateTime import org.joda.time.ReadableInstant @@ -404,6 +407,29 @@ class ConnectViewModelTest { } } + @Test + fun testOutOfTimeViewAction() = + runTest(testCoroutineRule.testDispatcher) { + // Arrange + val errorStateCause = ErrorStateCause.AuthFailed("[EXPIRED_ACCOUNT]") + val tunnelRealStateTestItem = TunnelState.Error(ErrorState(errorStateCause, true)) + val deferred = async { viewModel.viewActions.first() } + + // Act + viewModel.uiState.test { + awaitItem() + serviceConnectionState.value = + ServiceConnectionState.ConnectedReady(mockServiceConnectionContainer) + locationSlot.captured.invoke(mockLocation) + relaySlot.captured.invoke(mockk(), mockk()) + eventNotifierTunnelRealState.notify(tunnelRealStateTestItem) + awaitItem() + } + + // Assert + assertIs<ConnectViewModel.ViewAction.OpenOutOfTimeView>(deferred.await()) + } + companion object { private const val CACHE_EXTENSION_CLASS = "net.mullvad.mullvadvpn.util.CacheExtensionsKt" private const val SERVICE_CONNECTION_MANAGER_EXTENSIONS = |
