diff options
| author | David Göransson <david.goransson@mullvad.net> | 2025-01-08 09:41:28 +0100 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2025-01-09 10:54:46 +0100 |
| commit | 8fb29be52bf65d9b412d97b8a66171bf5e1f7085 (patch) | |
| tree | c8c1944e1dc4013a20b0ba6b40a1cd181843511c /android/app/src/androidTest | |
| parent | e3ea59f53a33eb1202b67e514f721403b10fe2a5 (diff) | |
| download | mullvadvpn-8fb29be52bf65d9b412d97b8a66171bf5e1f7085.tar.xz mullvadvpn-8fb29be52bf65d9b412d97b8a66171bf5e1f7085.zip | |
Update changelog presentation
Diffstat (limited to 'android/app/src/androidTest')
| -rw-r--r-- | android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt (renamed from android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialogTest.kt) | 30 | ||||
| -rw-r--r-- | android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt | 34 |
2 files changed, 53 insertions, 11 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialogTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt index b811209d1c..968f16eb29 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/dialog/ChangelogDialogTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt @@ -1,8 +1,7 @@ -package net.mullvad.mullvadvpn.compose.dialog +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 de.mannodermaus.junit5.compose.ComposeContext import io.mockk.MockKAnnotations import io.mockk.impl.annotations.MockK @@ -15,7 +14,7 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.RegisterExtension @OptIn(ExperimentalTestApi::class) -class ChangelogDialogTest { +class ChangelogScreenTest { @JvmField @RegisterExtension val composeExtension = createEdgeToEdgeComposeExtension() @MockK lateinit var mockedViewModel: AppInfoViewModel @@ -25,29 +24,38 @@ class ChangelogDialogTest { MockKAnnotations.init(this) } - private fun ComposeContext.initDialog(state: ChangelogUiState, onDismiss: () -> Unit = {}) { - setContentWithTheme { ChangelogDialog(state = state, onDismiss = onDismiss) } + private fun ComposeContext.initScreen( + state: ChangelogUiState, + onSeeFullChangelog: () -> Unit = {}, + onBackClick: () -> Unit = {}, + ) { + setContentWithTheme { + ChangelogScreen( + state = state, + onSeeFullChangelog = onSeeFullChangelog, + onBackClick = onBackClick, + ) + } } @Test fun testShowChangeLogWhenNeeded() = composeExtension.use { // Arrange - initDialog( + initScreen( state = ChangelogUiState(changes = listOf(CHANGELOG_ITEM), version = CHANGELOG_VERSION), - onDismiss = {}, + onBackClick = {}, ) + // Check changelog version shown + onNodeWithText(CHANGELOG_VERSION).assertExists() + // 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" private const val CHANGELOG_VERSION = "1234.5" } diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt index 59357d0527..0cdc8b8fe7 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ConnectScreenTest.kt @@ -17,6 +17,7 @@ import net.mullvad.mullvadvpn.compose.test.CIRCULAR_PROGRESS_INDICATOR import net.mullvad.mullvadvpn.compose.test.CONNECT_BUTTON_TEST_TAG import net.mullvad.mullvadvpn.compose.test.CONNECT_CARD_HEADER_TEST_TAG import net.mullvad.mullvadvpn.compose.test.NOTIFICATION_BANNER_ACTION +import net.mullvad.mullvadvpn.compose.test.NOTIFICATION_BANNER_TEXT_ACTION import net.mullvad.mullvadvpn.compose.test.RECONNECT_BUTTON_TEST_TAG import net.mullvad.mullvadvpn.compose.test.SELECT_LOCATION_BUTTON_TEST_TAG import net.mullvad.mullvadvpn.compose.test.TOP_BAR_ACCOUNT_BUTTON @@ -53,6 +54,7 @@ class ConnectScreenTest { unmockkAll() } + @Suppress("LongParameterList") private fun ComposeContext.initScreen( state: ConnectUiState = ConnectUiState.INITIAL, onDisconnectClick: () -> Unit = {}, @@ -65,6 +67,8 @@ class ConnectScreenTest { onSettingsClick: () -> Unit = {}, onAccountClick: () -> Unit = {}, onDismissNewDeviceClick: () -> Unit = {}, + onChangelogClick: () -> Unit = {}, + onDismissChangelogClick: () -> Unit = {}, ) { setContentWithTheme { ConnectScreen( @@ -79,6 +83,8 @@ class ConnectScreenTest { onSettingsClick = onSettingsClick, onAccountClick = onAccountClick, onDismissNewDeviceClick = onDismissNewDeviceClick, + onChangelogClick = onChangelogClick, + onDismissChangelogClick = onDismissChangelogClick, ) } } @@ -632,6 +638,34 @@ class ConnectScreenTest { } @Test + fun testOnNewChangelogMessageClick() { + composeExtension.use { + // Arrange + val mockedClickHandler: () -> Unit = mockk(relaxed = true) + initScreen( + onChangelogClick = mockedClickHandler, + state = + ConnectUiState( + location = null, + selectedRelayItemTitle = null, + tunnelState = TunnelState.Connecting(null, null, emptyList()), + showLocation = false, + deviceName = "", + daysLeftUntilExpiry = null, + inAppNotification = InAppNotification.NewVersionChangelog, + isPlayBuild = false, + ), + ) + + // Act + onNodeWithTag(NOTIFICATION_BANNER_TEXT_ACTION).performClick() + + // Assert + verify { mockedClickHandler.invoke() } + } + } + + @Test fun testOpenAccountView() { composeExtension.use { // Arrange |
