diff options
Diffstat (limited to 'android/app/src/test')
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() ) } } |
