diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-12-20 10:25:17 +0100 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2025-01-08 09:27:06 +0100 |
| commit | 0f33bd4bcbdf7fc3a9defb79b38f30a37038e89f (patch) | |
| tree | a1137f3331274dd85d27b057826a8dfdb1869ded /android/app/src/test | |
| parent | 02c7148847246fc492948d8ffdb426792c5f1c64 (diff) | |
| download | mullvadvpn-0f33bd4bcbdf7fc3a9defb79b38f30a37038e89f.tar.xz mullvadvpn-0f33bd4bcbdf7fc3a9defb79b38f30a37038e89f.zip | |
Make UI state have constraints
Diffstat (limited to 'android/app/src/test')
3 files changed, 21 insertions, 24 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt index 6ec1ae1fea..4575d8c895 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/RelayListFilterRepositoryTest.kt @@ -59,8 +59,7 @@ class RelayListFilterRepositoryTest { fun `when settings is updated selected providers should update`() = runTest { // Arrange val mockSettings: Settings = mockk() - val selectedProviders: Constraint<Providers> = - Constraint.Only(Providers(setOf(ProviderId("Prove")))) + val selectedProviders: Constraint<Providers> = Constraint.Only(setOf(ProviderId("Prove"))) every { mockSettings.relaySettings.relayConstraints.providers } returns selectedProviders // Act, Assert @@ -147,7 +146,7 @@ class RelayListFilterRepositoryTest { @Test fun `when successfully updating selected providers should return successful`() = runTest { // Arrange - val providers = Constraint.Only(Providers(setOf(ProviderId("Mopp")))) + val providers = Constraint.Only(setOf(ProviderId("Mopp"))) coEvery { mockManagementService.setProviders(providers) } returns Unit.right() // Act @@ -162,7 +161,7 @@ class RelayListFilterRepositoryTest { fun `when failing to update selected providers should return SetWireguardConstraintsError`() = runTest { // Arrange - val providers = Constraint.Only(Providers(setOf(ProviderId("Mopp")))) + val providers = Constraint.Only(setOf(ProviderId("Mopp"))) val error = SetWireguardConstraintsError.Unknown(mockk()) coEvery { mockManagementService.setProviders(providers) } returns error.left() diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt index bd1a759b77..32921b4ab0 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/FilterChipUseCaseTest.kt @@ -71,7 +71,7 @@ class FilterChipUseCaseTest { @Test fun `when provider filter is applied should return correct number of providers`() = runTest { // Arrange - val expectedProviders = Providers(providers = setOf(ProviderId("1"), ProviderId("2"))) + val expectedProviders = setOf(ProviderId("1"), ProviderId("2")) selectedProviders.value = Constraint.Only(expectedProviders) providerToOwnerships.value = mapOf( @@ -88,7 +88,7 @@ class FilterChipUseCaseTest { fun `when provider and ownership filter is applied should return correct filter chips`() = runTest { // Arrange - val expectedProviders = Providers(providers = setOf(ProviderId("1"))) + val expectedProviders = setOf(ProviderId("1")) val expectedOwnership = Ownership.MullvadOwned selectedProviders.value = Constraint.Only(expectedProviders) selectedOwnership.value = Constraint.Only(expectedOwnership) diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt index 49b9b4baff..7c905c0119 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/FilterViewModelTest.kt @@ -16,7 +16,7 @@ import kotlinx.coroutines.test.runTest import net.mullvad.mullvadvpn.compose.state.toConstraintProviders import net.mullvad.mullvadvpn.compose.state.toOwnershipConstraint import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule -import net.mullvad.mullvadvpn.lib.common.test.assertLists +import net.mullvad.mullvadvpn.lib.common.test.assertSet import net.mullvad.mullvadvpn.lib.model.Constraint import net.mullvad.mullvadvpn.lib.model.Ownership import net.mullvad.mullvadvpn.lib.model.ProviderId @@ -55,15 +55,15 @@ class FilterViewModelTest { ProviderId("Tzulo") to setOf(Ownership.Rented), ProviderId("xtom") to setOf(Ownership.Rented), ) - private val mockSelectedProviders: List<ProviderId> = - listOf(ProviderId("31173"), ProviderId("Blix"), ProviderId("Creanova")) + private val mockSelectedProviders: Providers = + setOf(ProviderId("31173"), ProviderId("Blix"), ProviderId("Creanova")) @BeforeEach fun setup() { every { mockRelayListFilterRepository.selectedOwnership } returns selectedOwnership every { mockProvidersOwnershipUseCase() } returns flowOf(dummyListOfAllProviders) every { mockRelayListFilterRepository.selectedProviders } returns - MutableStateFlow(Constraint.Only(Providers(mockSelectedProviders.toHashSet()))) + MutableStateFlow(Constraint.Only(mockSelectedProviders)) viewModel = FilterViewModel( providerToOwnershipsUseCase = mockProvidersOwnershipUseCase, @@ -84,9 +84,9 @@ class FilterViewModelTest { val mockOwnership = Ownership.Rented // Assert viewModel.uiState.test { - assertEquals(awaitItem().selectedOwnership, Ownership.MullvadOwned) - viewModel.setSelectedOwnership(mockOwnership) - assertEquals(mockOwnership, awaitItem().selectedOwnership) + assertEquals(Constraint.Only(Ownership.MullvadOwned), awaitItem().selectedOwnership) + viewModel.setSelectedOwnership(Constraint.Only(mockOwnership)) + assertEquals(Constraint.Only(mockOwnership), awaitItem().selectedOwnership) } } @@ -97,11 +97,11 @@ class FilterViewModelTest { val mockSelectedProvidersList = ProviderId("ptisp") // Assert viewModel.uiState.test { - assertLists(awaitItem().selectedProviders, mockSelectedProviders) + assertSet(mockSelectedProviders, awaitItem().selectedProviders.getOrNull()!!) viewModel.setSelectedProvider(true, mockSelectedProvidersList) - assertLists( - listOf(mockSelectedProvidersList) + mockSelectedProviders, - awaitItem().selectedProviders, + assertSet( + setOf(mockSelectedProvidersList) + mockSelectedProviders, + awaitItem().selectedProviders.getOrNull()!!, ) } } @@ -109,14 +109,12 @@ class FilterViewModelTest { @Test fun `setAllProvider with true should emit uiState with selectedProviders includes all providers`() = runTest { - // Arrange - val mockProvidersList = dummyListOfAllProviders.keys.toList() // Act viewModel.setAllProviders(true) // Assert viewModel.uiState.test { val state = awaitItem() - assertEquals(mockProvidersList, state.selectedProviders) + assertEquals(Constraint.Any, state.selectedProviders) } } @@ -126,7 +124,7 @@ class FilterViewModelTest { // Arrange val mockOwnership = Ownership.MullvadOwned.toOwnershipConstraint() val mockSelectedProviders = - mockSelectedProviders.toConstraintProviders(dummyListOfAllProviders.keys.toList()) + mockSelectedProviders.toConstraintProviders(dummyListOfAllProviders.keys) coEvery { mockRelayListFilterRepository.updateSelectedOwnershipAndProviderFilter( mockOwnership, @@ -149,12 +147,12 @@ class FilterViewModelTest { @Test fun `ensure that providers with multiple ownership are only returned once`() = runTest { // Arrange - val expectedProviderList = dummyListOfAllProviders.keys.toList() + val expectedProviderList = dummyListOfAllProviders.keys // Assert viewModel.uiState.test { val state = awaitItem() - assertLists(expectedProviderList, state.allProviders) + assertSet(expectedProviderList, state.allProviders) } } @@ -163,7 +161,7 @@ class FilterViewModelTest { // Assert viewModel.uiState.test { val state = awaitItem() - assertEquals(state.allProviders.sorted(), state.allProviders) + assertSet(state.allProviders, state.allProviders) assertEquals(state.selectableProviders.sorted(), state.selectableProviders) } } |
