diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-10-16 16:16:59 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2024-10-18 09:39:03 +0200 |
| commit | b71e78a641788a0660cc4da5a4ae40b2b18014b4 (patch) | |
| tree | f5af089ca00b821b8523502d88f19183db017e16 /android/app | |
| parent | f5157257a7ea6db7df17b6126ae7464f48765915 (diff) | |
| download | mullvadvpn-b71e78a641788a0660cc4da5a4ae40b2b18014b4.tar.xz mullvadvpn-b71e78a641788a0660cc4da5a4ae40b2b18014b4.zip | |
Remove old test
Diffstat (limited to 'android/app')
9 files changed, 34 insertions, 167 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogDialogTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogDialogTest.kt index 29341b2876..b8165f80fc 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogDialogTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogDialogTest.kt @@ -1,11 +1,17 @@ package net.mullvad.mullvadvpn.compose.screen import androidx.compose.ui.test.ExperimentalTestApi +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick import io.mockk.MockKAnnotations import io.mockk.impl.annotations.MockK import net.mullvad.mullvadvpn.compose.createEdgeToEdgeComposeExtension +import net.mullvad.mullvadvpn.compose.dialog.ChangelogDialog +import net.mullvad.mullvadvpn.compose.setContentWithTheme import net.mullvad.mullvadvpn.viewmodel.AppInfoViewModel +import net.mullvad.mullvadvpn.viewmodel.ChangelogUiState import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.RegisterExtension @OptIn(ExperimentalTestApi::class) @@ -19,6 +25,24 @@ class ChangelogDialogTest { MockKAnnotations.init(this) } + @Test + fun testShowChangeLogWhenNeeded() = + composeExtension.use { + // Arrange + setContentWithTheme { + ChangelogDialog( + ChangelogUiState(changes = listOf(CHANGELOG_ITEM), version = CHANGELOG_VERSION), + onDismiss = {}, + ) + } + + // Check changelog content showed within dialog + onNodeWithText(CHANGELOG_ITEM).assertExists() + + // perform click on Got It button to check if dismiss occur + onNodeWithText(CHANGELOG_BUTTON_TEXT).performClick() + } + companion object { private const val CHANGELOG_BUTTON_TEXT = "Got it!" private const val CHANGELOG_ITEM = "Changelog item" diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt index f108efab8e..2509c7be8d 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt @@ -39,7 +39,7 @@ class SettingsScreenTest { // Assert onNodeWithText("VPN settings").assertExists() onNodeWithText("Split tunneling").assertExists() - onNodeWithText("App version").assertExists() + onNodeWithText("App info").assertExists() onNodeWithText("API access").assertExists() } @@ -62,7 +62,7 @@ class SettingsScreenTest { // Assert onNodeWithText("VPN settings").assertDoesNotExist() onNodeWithText("Split tunneling").assertDoesNotExist() - onNodeWithText("App version").assertExists() + onNodeWithText("App info").assertExists() onNodeWithText("API access").assertExists() } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModel.kt index 0177fdb586..662cbdc4a1 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModel.kt @@ -20,9 +20,9 @@ import net.mullvad.mullvadvpn.ui.serviceconnection.AppVersionInfoRepository class AppInfoViewModel( changelogRepository: ChangelogRepository, appVersionInfoRepository: AppVersionInfoRepository, - val resources: Resources, - val isPlayBuild: Boolean, - val packageName: String, + private val resources: Resources, + private val isPlayBuild: Boolean, + private val packageName: String, ) : ViewModel() { private val _uiSideEffect = Channel<AppInfoSideEffect>() diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/ChangelogRepositoryTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/ChangelogRepositoryTest.kt index e38d6bebbc..1524549e57 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/ChangelogRepositoryTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/repository/ChangelogRepositoryTest.kt @@ -1,6 +1,5 @@ package net.mullvad.mullvadvpn.repository -import android.content.SharedPreferences import io.mockk.every import io.mockk.mockk import net.mullvad.mullvadvpn.lib.common.test.assertLists @@ -9,11 +8,9 @@ import org.junit.jupiter.api.Test class ChangelogRepositoryTest { - private val mockedPreferences: SharedPreferences = mockk() private val mockDataProvider: IChangelogDataProvider = mockk() - private val changelogRepository = - ChangelogRepository(preferences = mockedPreferences, dataProvider = mockDataProvider) + private val changelogRepository = ChangelogRepository(dataProvider = mockDataProvider) @Test fun `when given a changelog text should return a list of correctly formatted strings`() { diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/VersionNotificationUseCaseTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/VersionNotificationUseCaseTest.kt index 1aead39d85..e9452884cf 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/VersionNotificationUseCaseTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/usecase/VersionNotificationUseCaseTest.kt @@ -29,7 +29,7 @@ class VersionNotificationUseCaseTest { @BeforeEach fun setup() { MockKAnnotations.init(this) - every { mockAppVersionInfoRepository.versionInfo() } returns versionInfo + every { mockAppVersionInfoRepository.versionInfo } returns versionInfo versionNotificationUseCase = VersionNotificationUseCase( diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModelTest.kt deleted file mode 100644 index 1d370b75a8..0000000000 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/AppInfoViewModelTest.kt +++ /dev/null @@ -1,78 +0,0 @@ -package net.mullvad.mullvadvpn.viewmodel - -import app.cash.turbine.test -import io.mockk.MockKAnnotations -import io.mockk.Runs -import io.mockk.every -import io.mockk.impl.annotations.MockK -import io.mockk.just -import io.mockk.unmockkAll -import kotlin.test.assertEquals -import kotlinx.coroutines.test.runTest -import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule -import net.mullvad.mullvadvpn.lib.model.BuildVersion -import net.mullvad.mullvadvpn.repository.ChangelogRepository -import org.junit.jupiter.api.AfterEach -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.extension.ExtendWith - -@ExtendWith(TestCoroutineRule::class) -class AppInfoViewModelTest { - - @MockK private lateinit var mockedChangelogRepository: ChangelogRepository - - private lateinit var viewModel: AppInfoViewModel - - private val buildVersion = BuildVersion("1.0", 10) - - @BeforeEach - fun setup() { - MockKAnnotations.init(this) - every { mockedChangelogRepository.setVersionCodeOfMostRecentChangelogShowed(any()) } just - Runs - } - - @AfterEach - fun teardown() { - unmockkAll() - } - - @Test - fun `given up to date version code uiSideEffect should not emit`() = runTest { - // Arrange - every { mockedChangelogRepository.getVersionCodeOfMostRecentChangelogShowed() } returns - buildVersion.code - viewModel = AppInfoViewModel(mockedChangelogRepository, buildVersion, false) - - // If we have the most up to date version code, we should not show the changelog dialog - viewModel.uiSideEffect.test { expectNoEvents() } - } - - @Test - fun `given old version code uiSideEffect should emit ChangeLog`() = runTest { - // Arrange - val version = -1 - val changes = listOf("first change", "second change") - every { mockedChangelogRepository.getVersionCodeOfMostRecentChangelogShowed() } returns - version - every { mockedChangelogRepository.getLastVersionChanges() } returns changes - - viewModel = AppInfoViewModel(mockedChangelogRepository, buildVersion, false) - // Given a new version with a change log we should return it - viewModel.uiSideEffect.test { - assertEquals(awaitItem(), Changelog(version = buildVersion.name, changes = changes)) - } - } - - @Test - fun `given old version code and empty change log uiSideEffect should not emit`() = runTest { - // Arrange - every { mockedChangelogRepository.getVersionCodeOfMostRecentChangelogShowed() } returns -1 - every { mockedChangelogRepository.getLastVersionChanges() } returns emptyList() - - viewModel = AppInfoViewModel(mockedChangelogRepository, buildVersion, false) - // Given a new version with a change log we should not return it - viewModel.uiSideEffect.test { expectNoEvents() } - } -} diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModelTest.kt deleted file mode 100644 index 7888f02a4d..0000000000 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModelTest.kt +++ /dev/null @@ -1,78 +0,0 @@ -package net.mullvad.mullvadvpn.viewmodel - -import app.cash.turbine.test -import io.mockk.MockKAnnotations -import io.mockk.Runs -import io.mockk.every -import io.mockk.impl.annotations.MockK -import io.mockk.just -import io.mockk.unmockkAll -import kotlin.test.assertEquals -import kotlinx.coroutines.test.runTest -import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule -import net.mullvad.mullvadvpn.lib.model.BuildVersion -import net.mullvad.mullvadvpn.repository.ChangelogRepository -import org.junit.jupiter.api.AfterEach -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.extension.ExtendWith - -@ExtendWith(TestCoroutineRule::class) -class ChangelogViewModelTest { - - @MockK private lateinit var mockedChangelogRepository: ChangelogRepository - - private lateinit var viewModel: ChangelogViewModel - - private val buildVersion = BuildVersion("1.0", 10) - - @BeforeEach - fun setup() { - MockKAnnotations.init(this) - every { mockedChangelogRepository.setVersionCodeOfMostRecentChangelogShowed(any()) } just - Runs - } - - @AfterEach - fun teardown() { - unmockkAll() - } - - @Test - fun `given up to date version code uiSideEffect should not emit`() = runTest { - // Arrange - every { mockedChangelogRepository.getVersionCodeOfMostRecentChangelogShowed() } returns - buildVersion.code - viewModel = ChangelogViewModel(mockedChangelogRepository, buildVersion, false) - - // If we have the most up to date version code, we should not show the changelog dialog - viewModel.uiSideEffect.test { expectNoEvents() } - } - - @Test - fun `given old version code uiSideEffect should emit ChangeLog`() = runTest { - // Arrange - val version = -1 - val changes = listOf("first change", "second change") - every { mockedChangelogRepository.getVersionCodeOfMostRecentChangelogShowed() } returns - version - every { mockedChangelogRepository.getLastVersionChanges() } returns changes - - viewModel = ChangelogViewModel(mockedChangelogRepository, buildVersion, false) - // Given a new version with a change log we should return it - viewModel.uiSideEffect.test { - assertEquals(awaitItem(), Changelog(version = buildVersion.name, changes = changes)) - } - } - - @Test - fun `given old version code and empty change log uiSideEffect should not emit`() = runTest { - // Arrange - every { mockedChangelogRepository.getVersionCodeOfMostRecentChangelogShowed() } returns -1 - every { mockedChangelogRepository.getLastVersionChanges() } returns emptyList() - - viewModel = ChangelogViewModel(mockedChangelogRepository, buildVersion, false) - // Given a new version with a change log we should not return it - viewModel.uiSideEffect.test { expectNoEvents() } - } -} 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 9696a30539..33e836acd8 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 @@ -124,7 +124,9 @@ class ConnectViewModelTest { connectionProxy = mockConnectionProxy, lastKnownLocationUseCase = mockLastKnownLocationUseCase, vpnPermissionRepository = mockVpnPermissionRepository, + resources = mockk(), isPlayBuild = false, + packageName = "net.mullvad.mullvadvpn", ) } diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModelTest.kt index 97259b8b43..8857eb364a 100644 --- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModelTest.kt +++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModelTest.kt @@ -35,7 +35,7 @@ class SettingsViewModelTest { val deviceState = MutableStateFlow<DeviceState>(DeviceState.LoggedOut) every { mockDeviceRepository.deviceState } returns deviceState - every { mockAppVersionInfoRepository.versionInfo() } returns versionInfo + every { mockAppVersionInfoRepository.versionInfo } returns versionInfo viewModel = SettingsViewModel( |
