summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/test
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-06-24 11:07:48 +0200
committerDavid Göransson <david.goransson@mullvad.net>2024-07-04 12:06:19 +0200
commit76f57d2a131aa998fadaa7b9a80f7435bddec8b9 (patch)
treed7af39cfc3befda56bb059fe3aea82a33f299489 /android/app/src/test
parent73bba2cfb78b789241db09ff5e39f638ecfad5ac (diff)
downloadmullvadvpn-76f57d2a131aa998fadaa7b9a80f7435bddec8b9.tar.xz
mullvadvpn-76f57d2a131aa998fadaa7b9a80f7435bddec8b9.zip
Use NavArgs & SavedStateHandle
Diffstat (limited to 'android/app/src/test')
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ApiAccessMethodDetailsViewModelTest.kt8
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CreateCustomListDialogViewModelTest.kt10
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CustomListLocationsViewModelTest.kt12
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteApiAccessMethodConfirmationViewModelTest.kt8
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteCustomListConfirmationViewModelTest.kt12
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListNameDialogViewModelTest.kt15
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListViewModelTest.kt30
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SaveApiAccessMethodViewModelTest.kt14
8 files changed, 71 insertions, 38 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ApiAccessMethodDetailsViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ApiAccessMethodDetailsViewModelTest.kt
index 63ce73c1a3..bd304573d3 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ApiAccessMethodDetailsViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ApiAccessMethodDetailsViewModelTest.kt
@@ -4,6 +4,7 @@ import app.cash.turbine.test
import arrow.core.Either
import arrow.core.left
import arrow.core.right
+import com.ramcosta.composedestinations.generated.navargs.toSavedStateHandle
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.every
@@ -14,6 +15,7 @@ import kotlin.test.assertIs
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.time.delay
+import net.mullvad.mullvadvpn.compose.screen.ApiAccessMethodDetailsNavArgs
import net.mullvad.mullvadvpn.compose.state.ApiAccessMethodDetailsUiState
import net.mullvad.mullvadvpn.data.UUID
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
@@ -49,8 +51,10 @@ class ApiAccessMethodDetailsViewModelTest {
apiAccessMethodDetailsViewModel =
ApiAccessMethodDetailsViewModel(
- apiAccessMethodId = apiAccessMethodId,
- apiAccessRepository = mockApiAccessRepository
+ apiAccessRepository = mockApiAccessRepository,
+ savedStateHandle =
+ ApiAccessMethodDetailsNavArgs(accessMethodId = apiAccessMethodId)
+ .toSavedStateHandle()
)
}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CreateCustomListDialogViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CreateCustomListDialogViewModelTest.kt
index efdf08447d..2ab6e6267b 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CreateCustomListDialogViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CreateCustomListDialogViewModelTest.kt
@@ -3,6 +3,7 @@ package net.mullvad.mullvadvpn.viewmodel
import app.cash.turbine.test
import arrow.core.left
import arrow.core.right
+import com.ramcosta.composedestinations.generated.navargs.toSavedStateHandle
import io.mockk.coEvery
import io.mockk.every
import io.mockk.mockk
@@ -10,6 +11,7 @@ import kotlin.test.assertIs
import kotlinx.coroutines.test.runTest
import net.mullvad.mullvadvpn.compose.communication.Created
import net.mullvad.mullvadvpn.compose.communication.CustomListAction
+import net.mullvad.mullvadvpn.compose.dialog.CreateCustomListNavArgs
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
import net.mullvad.mullvadvpn.lib.model.CustomListAlreadyExists
import net.mullvad.mullvadvpn.lib.model.CustomListId
@@ -113,7 +115,11 @@ class CreateCustomListDialogViewModelTest {
private fun createViewModelWithLocationCode(locationCode: GeoLocationId) =
CreateCustomListDialogViewModel(
- locationCode = locationCode,
- customListActionUseCase = mockCustomListActionUseCase
+ customListActionUseCase = mockCustomListActionUseCase,
+ savedStateHandle =
+ CreateCustomListNavArgs(
+ locationCode = locationCode,
+ )
+ .toSavedStateHandle()
)
}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CustomListLocationsViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CustomListLocationsViewModelTest.kt
index 20130018d8..4879031ce7 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CustomListLocationsViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/CustomListLocationsViewModelTest.kt
@@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn.viewmodel
import app.cash.turbine.test
import arrow.core.right
+import com.ramcosta.composedestinations.generated.navargs.toSavedStateHandle
import io.mockk.coEvery
import io.mockk.every
import io.mockk.mockk
@@ -10,6 +11,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.runTest
import net.mullvad.mullvadvpn.compose.communication.CustomListAction
import net.mullvad.mullvadvpn.compose.communication.LocationsChanged
+import net.mullvad.mullvadvpn.compose.screen.CustomListLocationsNavArgs
import net.mullvad.mullvadvpn.compose.state.CustomListLocationsUiState
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
import net.mullvad.mullvadvpn.lib.model.CustomList
@@ -221,11 +223,15 @@ class CustomListLocationsViewModelTest {
newList: Boolean
): CustomListLocationsViewModel {
return CustomListLocationsViewModel(
- customListId = customListId,
- newList = newList,
relayListRepository = mockRelayListRepository,
customListRelayItemsUseCase = mockCustomListRelayItemsUseCase,
- customListActionUseCase = mockCustomListUseCase
+ customListActionUseCase = mockCustomListUseCase,
+ savedStateHandle =
+ CustomListLocationsNavArgs(
+ customListId = customListId,
+ newList = newList,
+ )
+ .toSavedStateHandle()
)
}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteApiAccessMethodConfirmationViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteApiAccessMethodConfirmationViewModelTest.kt
index 18f6a64647..eea3c01b2d 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteApiAccessMethodConfirmationViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteApiAccessMethodConfirmationViewModelTest.kt
@@ -3,9 +3,11 @@ package net.mullvad.mullvadvpn.viewmodel
import app.cash.turbine.test
import arrow.core.left
import arrow.core.right
+import com.ramcosta.composedestinations.generated.navargs.toSavedStateHandle
import io.mockk.coEvery
import io.mockk.mockk
import kotlinx.coroutines.test.runTest
+import net.mullvad.mullvadvpn.compose.dialog.DeleteApiAccessMethodNavArgs
import net.mullvad.mullvadvpn.data.UUID
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodId
@@ -29,8 +31,10 @@ class DeleteApiAccessMethodConfirmationViewModelTest {
deleteApiAccessMethodConfirmationViewModel =
DeleteApiAccessMethodConfirmationViewModel(
- apiAccessMethodId = apiAccessMethodId,
- apiAccessRepository = mockApiAccessRepository
+ apiAccessRepository = mockApiAccessRepository,
+ savedStateHandle =
+ DeleteApiAccessMethodNavArgs(apiAccessMethodId = apiAccessMethodId)
+ .toSavedStateHandle()
)
}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteCustomListConfirmationViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteCustomListConfirmationViewModelTest.kt
index 66307a499d..2656d1a4ff 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteCustomListConfirmationViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/DeleteCustomListConfirmationViewModelTest.kt
@@ -2,14 +2,17 @@ package net.mullvad.mullvadvpn.viewmodel
import app.cash.turbine.test
import arrow.core.right
+import com.ramcosta.composedestinations.generated.navargs.toSavedStateHandle
import io.mockk.coEvery
import io.mockk.mockk
import kotlin.test.assertIs
import kotlinx.coroutines.test.runTest
import net.mullvad.mullvadvpn.compose.communication.CustomListAction
import net.mullvad.mullvadvpn.compose.communication.Deleted
+import net.mullvad.mullvadvpn.compose.dialog.DeleteCustomListNavArgs
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
import net.mullvad.mullvadvpn.lib.model.CustomListId
+import net.mullvad.mullvadvpn.lib.model.CustomListName
import net.mullvad.mullvadvpn.usecase.customlists.CustomListActionUseCase
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
@@ -38,7 +41,12 @@ class DeleteCustomListConfirmationViewModelTest {
private fun createViewModel() =
DeleteCustomListConfirmationViewModel(
- customListId = CustomListId("1"),
- customListActionUseCase = mockCustomListActionUseCase
+ customListActionUseCase = mockCustomListActionUseCase,
+ savedStateHandle =
+ DeleteCustomListNavArgs(
+ customListId = CustomListId("1"),
+ name = CustomListName.fromString("asdf")
+ )
+ .toSavedStateHandle()
)
}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListNameDialogViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListNameDialogViewModelTest.kt
index 130ca21ece..7b4dcc0b83 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListNameDialogViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListNameDialogViewModelTest.kt
@@ -3,12 +3,14 @@ package net.mullvad.mullvadvpn.viewmodel
import app.cash.turbine.test
import arrow.core.left
import arrow.core.right
+import com.ramcosta.composedestinations.generated.navargs.toSavedStateHandle
import io.mockk.coEvery
import io.mockk.mockk
import kotlin.test.assertIs
import kotlinx.coroutines.test.runTest
import net.mullvad.mullvadvpn.compose.communication.CustomListAction
import net.mullvad.mullvadvpn.compose.communication.Renamed
+import net.mullvad.mullvadvpn.compose.dialog.EditCustomListNameNavArgs
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
import net.mullvad.mullvadvpn.lib.model.CustomListId
import net.mullvad.mullvadvpn.lib.model.CustomListName
@@ -16,7 +18,6 @@ import net.mullvad.mullvadvpn.lib.model.NameAlreadyExists
import net.mullvad.mullvadvpn.usecase.customlists.CustomListActionUseCase
import net.mullvad.mullvadvpn.usecase.customlists.RenameError
import org.junit.jupiter.api.Assertions.assertEquals
-import org.junit.jupiter.api.Assertions.assertNull
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
@@ -77,15 +78,17 @@ class EditCustomListNameDialogViewModelTest {
awaitItem() // Default state
viewModel.updateCustomListName(customListName)
assertEquals(expectedError, awaitItem().error) // Showing error
- viewModel.clearError()
- assertNull(awaitItem().error)
}
}
private fun createViewModel(customListId: CustomListId, initialName: String) =
EditCustomListNameDialogViewModel(
- customListId = customListId,
- initialName = CustomListName.fromString(initialName),
- customListActionUseCase = mockCustomListActionUseCase
+ customListActionUseCase = mockCustomListActionUseCase,
+ savedStateHandle =
+ EditCustomListNameNavArgs(
+ customListId = customListId,
+ initialName = CustomListName.fromString(initialName),
+ )
+ .toSavedStateHandle()
)
}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListViewModelTest.kt
index c3f233846a..16d1488bc4 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/EditCustomListViewModelTest.kt
@@ -1,11 +1,13 @@
package net.mullvad.mullvadvpn.viewmodel
import app.cash.turbine.test
+import com.ramcosta.composedestinations.generated.navargs.toSavedStateHandle
import io.mockk.every
import io.mockk.mockk
import kotlin.test.assertIs
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.runTest
+import net.mullvad.mullvadvpn.compose.dialog.EditCustomListNameNavArgs
import net.mullvad.mullvadvpn.compose.state.EditCustomListState
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
import net.mullvad.mullvadvpn.lib.model.CustomList
@@ -24,14 +26,10 @@ class EditCustomListViewModelTest {
fun `given a custom list id that does not exists should return not found ui state`() = runTest {
// Arrange
val customListId = CustomListId("2")
- val customList =
- CustomList(
- id = CustomListId("1"),
- name = CustomListName.fromString("test"),
- locations = emptyList()
- )
+ val name = CustomListName.fromString("test")
+ val customList = CustomList(id = CustomListId("1"), name = name, locations = emptyList())
every { mockCustomListsRepository.customLists } returns MutableStateFlow(listOf(customList))
- val viewModel = createViewModel(customListId)
+ val viewModel = createViewModel(customListId, name)
// Act, Assert
viewModel.uiState.test {
@@ -44,14 +42,10 @@ class EditCustomListViewModelTest {
fun `given a custom list id that exists should return content ui state`() = runTest {
// Arrange
val customListId = CustomListId("1")
- val customList =
- CustomList(
- id = customListId,
- name = CustomListName.fromString("test"),
- locations = emptyList()
- )
+ val name = CustomListName.fromString("test")
+ val customList = CustomList(id = customListId, name = name, locations = emptyList())
every { mockCustomListsRepository.customLists } returns MutableStateFlow(listOf(customList))
- val viewModel = createViewModel(customListId)
+ val viewModel = createViewModel(customListId, name)
// Act, Assert
viewModel.uiState.test {
@@ -63,9 +57,11 @@ class EditCustomListViewModelTest {
}
}
- private fun createViewModel(customListId: CustomListId) =
+ private fun createViewModel(customListId: CustomListId, initialName: CustomListName) =
EditCustomListViewModel(
- customListId = customListId,
- customListsRepository = mockCustomListsRepository
+ customListsRepository = mockCustomListsRepository,
+ savedStateHandle =
+ EditCustomListNameNavArgs(customListId = customListId, initialName = initialName)
+ .toSavedStateHandle()
)
}
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SaveApiAccessMethodViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SaveApiAccessMethodViewModelTest.kt
index 0828b3ed08..3455bba423 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SaveApiAccessMethodViewModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SaveApiAccessMethodViewModelTest.kt
@@ -3,10 +3,12 @@ package net.mullvad.mullvadvpn.viewmodel
import app.cash.turbine.test
import arrow.core.left
import arrow.core.right
+import com.ramcosta.composedestinations.generated.navargs.toSavedStateHandle
import io.mockk.coEvery
import io.mockk.coVerify
import io.mockk.mockk
import kotlinx.coroutines.test.runTest
+import net.mullvad.mullvadvpn.compose.dialog.SaveApiAccessMethodNavArgs
import net.mullvad.mullvadvpn.compose.state.SaveApiAccessMethodUiState
import net.mullvad.mullvadvpn.compose.state.TestApiAccessMethodState
import net.mullvad.mullvadvpn.data.UUID
@@ -212,10 +214,14 @@ class SaveApiAccessMethodViewModelTest {
) {
saveApiAccessMethodViewModel =
SaveApiAccessMethodViewModel(
- apiAccessMethodId = apiAccessMethodId,
- apiAccessMethodName = apiAccessMethodName,
- customProxy = customProxy,
- apiAccessRepository = mockApiAccessRepository
+ apiAccessRepository = mockApiAccessRepository,
+ savedStateHandle =
+ SaveApiAccessMethodNavArgs(
+ id = apiAccessMethodId,
+ name = apiAccessMethodName,
+ customProxy = customProxy,
+ )
+ .toSavedStateHandle()
)
}
}