summaryrefslogtreecommitdiffhomepage
path: root/android/app/src/androidTest
diff options
context:
space:
mode:
authorsaber safavi <saber.safavi@codic.se>2023-07-12 14:45:54 +0200
committersaber safavi <saber.safavi@codic.se>2023-07-13 14:49:50 +0200
commit214a4282860dc4abfa804f29410854fee8a7ce85 (patch)
tree075ee7fdc792e5a155715d03e9027d20a6055fd3 /android/app/src/androidTest
parent8c73ec01fd85a169c43249b0c055b1d1b4e87e94 (diff)
downloadmullvadvpn-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.kt55
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()
+ }
+ }
+}