diff options
| author | saber safavi <saber.safavi@codic.se> | 2023-07-12 14:45:54 +0200 |
|---|---|---|
| committer | saber safavi <saber.safavi@codic.se> | 2023-07-13 14:49:50 +0200 |
| commit | 214a4282860dc4abfa804f29410854fee8a7ce85 (patch) | |
| tree | 075ee7fdc792e5a155715d03e9027d20a6055fd3 /android/app/src/androidTest | |
| parent | 8c73ec01fd85a169c43249b0c055b1d1b4e87e94 (diff) | |
| download | mullvadvpn-214a4282860dc4abfa804f29410854fee8a7ce85.tar.xz mullvadvpn-214a4282860dc4abfa804f29410854fee8a7ce85.zip | |
Add screen and view model tests
Diffstat (limited to 'android/app/src/androidTest')
| -rw-r--r-- | android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt | 55 |
1 files changed, 55 insertions, 0 deletions
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 new file mode 100644 index 0000000000..5ed9ac1c8a --- /dev/null +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt @@ -0,0 +1,55 @@ +package net.mullvad.mullvadvpn.compose.screen + +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithText +import io.mockk.MockKAnnotations +import net.mullvad.mullvadvpn.compose.state.SettingsUiState +import org.junit.Before +import org.junit.Rule +import org.junit.Test + +class SettingsScreenTest { + @get:Rule val composeTestRule = createComposeRule() + + @Before + fun setup() { + MockKAnnotations.init(this) + } + + @Test + @OptIn(ExperimentalMaterial3Api::class) + fun testLoggedInState() { + // Arrange + composeTestRule.setContent { + SettingsScreen( + uiState = + SettingsUiState(appVersion = "", isLoggedIn = true, isUpdateAvailable = true) + ) + } + // Assert + composeTestRule.apply { + onNodeWithText("VPN settings").assertExists() + onNodeWithText("Split tunneling").assertExists() + onNodeWithText("App version").assertExists() + } + } + + @Test + @OptIn(ExperimentalMaterial3Api::class) + fun testLoggedOutState() { + // Arrange + composeTestRule.setContent { + SettingsScreen( + uiState = + SettingsUiState(appVersion = "", isLoggedIn = false, isUpdateAvailable = true) + ) + } + // Assert + composeTestRule.apply { + onNodeWithText("VPN settings").assertDoesNotExist() + onNodeWithText("Split tunneling").assertDoesNotExist() + onNodeWithText("App version").assertExists() + } + } +} |
