diff --git a/app/src/androidTest/java/com/android/periodpals/ui/navigation/TopAppBarTest.kt b/app/src/androidTest/java/com/android/periodpals/ui/navigation/TopAppBarTest.kt new file mode 100644 index 000000000..cbe07bc55 --- /dev/null +++ b/app/src/androidTest/java/com/android/periodpals/ui/navigation/TopAppBarTest.kt @@ -0,0 +1,52 @@ +package com.android.periodpals.ui.navigation + +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick +import org.junit.Rule +import org.junit.Test + +class TopAppBarTest { + + @get:Rule val composeTestRule = createComposeRule() + + @Test + fun topAppBar_displaysTitle() { + composeTestRule.setContent { TopAppBar(title = "Tampon Timer") } + + composeTestRule.onNodeWithTag("topBar").assertIsDisplayed() + composeTestRule.onNodeWithTag("screenTitle").assertIsDisplayed() + } + + @Test + fun topAppBar_displaysBackButton() { + composeTestRule.setContent { TopAppBar(title = "Tampon Timer", backButton = true) } + + composeTestRule.onNodeWithTag("topBar").assertIsDisplayed() + composeTestRule.onNodeWithTag("goBackButton").assertIsDisplayed() + } + + @Test + fun topAppBar_backButtonClick() { + var backButtonClicked = false + + composeTestRule.setContent { + TopAppBar( + title = "Tampon Timer", + backButton = true, + onBackButtonClick = { backButtonClicked = true }) + } + + composeTestRule.onNodeWithTag("goBackButton").performClick() + assert(backButtonClicked) + } + + @Test + fun topAppBar_noBackButton() { + composeTestRule.setContent { TopAppBar(title = "Tampon Timer", backButton = false) } + + composeTestRule.onNodeWithTag("topBar").assertIsDisplayed() + composeTestRule.onNodeWithTag("goBackButton").assertDoesNotExist() + } +}