diff options
| author | saber safavi <saber.safavi@codic.se> | 2022-10-10 14:34:14 +0200 |
|---|---|---|
| committer | saber safavi <saber.safavi@codic.se> | 2022-11-18 10:18:48 +0100 |
| commit | 678c2abac8641416cb34e389965525f8f78ab945 (patch) | |
| tree | 2b4af5f4fca2cf46ed3cf5060e17786dfe27efd7 /android/app/src/androidTest | |
| parent | aff2dda86ab891b98387804eff8c3e8124c7c02c (diff) | |
| download | mullvadvpn-678c2abac8641416cb34e389965525f8f78ab945.tar.xz mullvadvpn-678c2abac8641416cb34e389965525f8f78ab945.zip | |
Add changelog dialog to android
Diffstat (limited to 'android/app/src/androidTest')
| -rw-r--r-- | android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogDialogTest.kt | 74 |
1 files changed, 74 insertions, 0 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 new file mode 100644 index 0000000000..dab5bf0a60 --- /dev/null +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogDialogTest.kt @@ -0,0 +1,74 @@ +package net.mullvad.mullvadvpn.compose.screen + +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick +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.verify +import kotlinx.coroutines.flow.MutableStateFlow +import net.mullvad.mullvadvpn.compose.component.AppTheme +import net.mullvad.mullvadvpn.compose.component.ChangelogDialog +import net.mullvad.mullvadvpn.viewmodel.ChangelogDialogUiState +import net.mullvad.mullvadvpn.viewmodel.ChangelogViewModel +import org.junit.Before +import org.junit.Rule +import org.junit.Test + +class ChangelogDialogTest { + @get:Rule + val composeTestRule = createComposeRule() + + @MockK + lateinit var mockedViewModel: ChangelogViewModel + + @Before + fun setup() { + MockKAnnotations.init(this) + } + + @Test + fun testShowChangeLogWhenNeeded() { + // Arrange + every { + mockedViewModel.changelogDialogUiState + } returns MutableStateFlow(ChangelogDialogUiState.Show(listOf(CHANGELOG_ITEM))) + every { + mockedViewModel.dismissChangelogDialog() + } just Runs + + composeTestRule.setContent { + AppTheme { + ChangelogDialog( + changesList = listOf(CHANGELOG_ITEM), + version = CHANGELOG_VERSION, + onDismiss = { + mockedViewModel.dismissChangelogDialog() + } + ) + } + } + + // Check changelog content showed within dialog + composeTestRule + .onNodeWithText(CHANGELOG_ITEM) + .assertExists() + + // perform click on Got It button to check if dismiss occur + composeTestRule + .onNodeWithText(CHANGELOG_BUTTON_TEXT) + .performClick() + + // Assert + verify { mockedViewModel.dismissChangelogDialog() } + } + + companion object { + private const val CHANGELOG_BUTTON_TEXT = "Got it!" + private const val CHANGELOG_ITEM = "Changelog item" + private const val CHANGELOG_VERSION = "1234.5" + } +} |
