This commit was merged in pull request #53.
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
package org.shahondin1624
|
||||
|
||||
import androidx.compose.ui.test.ExperimentalTestApi
|
||||
import androidx.compose.ui.test.assertIsDisplayed
|
||||
import androidx.compose.ui.test.onNodeWithTag
|
||||
import androidx.compose.ui.test.onNodeWithText
|
||||
import androidx.compose.ui.test.performClick
|
||||
import androidx.compose.ui.test.runComposeUiTest
|
||||
import org.shahondin1624.lib.components.TestTags
|
||||
import kotlin.test.Test
|
||||
|
||||
/**
|
||||
* Tests for navigation routing: drawer opens, items visible, and routing works.
|
||||
* These tests render the full App composable in compact mode (default).
|
||||
*/
|
||||
@OptIn(ExperimentalTestApi::class)
|
||||
class NavigationRoutingTest {
|
||||
|
||||
@Test
|
||||
fun menuButtonOpensDrawerWithNavItems() = runComposeUiTest {
|
||||
setContent {
|
||||
App()
|
||||
}
|
||||
|
||||
waitForIdle()
|
||||
|
||||
// Click the menu button to open the drawer
|
||||
onNodeWithTag(TestTags.MENU_BUTTON).performClick()
|
||||
waitForIdle()
|
||||
|
||||
// Assert both navigation items are visible
|
||||
onNodeWithText("Character Sheet").assertIsDisplayed()
|
||||
onNodeWithText("Settings").assertIsDisplayed()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun clickSettingsNavigatesToSettingsPage() = runComposeUiTest {
|
||||
setContent {
|
||||
App()
|
||||
}
|
||||
|
||||
waitForIdle()
|
||||
|
||||
// Open drawer and click Settings
|
||||
onNodeWithTag(TestTags.MENU_BUTTON).performClick()
|
||||
waitForIdle()
|
||||
|
||||
onNodeWithTag(TestTags.NAV_SETTINGS).performClick()
|
||||
waitForIdle()
|
||||
|
||||
// Assert Settings page content appears
|
||||
onNodeWithTag("settings_page").assertIsDisplayed()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun navigateBackToCharacterSheet() = runComposeUiTest {
|
||||
setContent {
|
||||
App()
|
||||
}
|
||||
|
||||
waitForIdle()
|
||||
|
||||
// Navigate to Settings
|
||||
onNodeWithTag(TestTags.MENU_BUTTON).performClick()
|
||||
waitForIdle()
|
||||
onNodeWithTag(TestTags.NAV_SETTINGS).performClick()
|
||||
waitForIdle()
|
||||
|
||||
// Navigate back to Character Sheet
|
||||
onNodeWithTag(TestTags.MENU_BUTTON).performClick()
|
||||
waitForIdle()
|
||||
onNodeWithTag(TestTags.NAV_CHARACTER_SHEET).performClick()
|
||||
waitForIdle()
|
||||
|
||||
// Assert character sheet content reappears (attribute cards)
|
||||
onNodeWithTag(TestTags.attributeCard("Body")).assertIsDisplayed()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user