Skip to content

Commit

Permalink
test: add UI tests for TopAppBar
Browse files Browse the repository at this point in the history
  • Loading branch information
francelu committed Oct 13, 2024
1 parent 58bbb5b commit c898ec1
Showing 1 changed file with 52 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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()
}
}

0 comments on commit c898ec1

Please sign in to comment.