From c898ec17e4cd5c9f5e4ddc09f6bcefc05d1094e3 Mon Sep 17 00:00:00 2001 From: France LU Date: Sun, 13 Oct 2024 18:58:08 +0200 Subject: [PATCH] test: add UI tests for TopAppBar --- .../periodpals/ui/navigation/TopAppBarTest.kt | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 app/src/androidTest/java/com/android/periodpals/ui/navigation/TopAppBarTest.kt 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() + } +}