diff --git a/app/src/androidTest/java/com/android/periodpals/ui/navigation/BottomNavigationMenuTest.kt b/app/src/androidTest/java/com/android/periodpals/ui/navigation/BottomNavigationMenuTest.kt index 4826404a2..886286f6a 100644 --- a/app/src/androidTest/java/com/android/periodpals/ui/navigation/BottomNavigationMenuTest.kt +++ b/app/src/androidTest/java/com/android/periodpals/ui/navigation/BottomNavigationMenuTest.kt @@ -9,6 +9,7 @@ import androidx.compose.ui.test.assertIsNotSelected import androidx.compose.ui.test.assertIsSelected import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test @@ -18,12 +19,12 @@ class BottomNavigationMenuTest { @get:Rule val composeTestRule = createComposeRule() @Test - fun bottomNavigationMenu_displaysAllTabs() { + fun displaysAllTabs() { + composeTestRule.setContent { BottomNavigationMenu( onTabSelect = {}, tabList = LIST_TOP_LEVEL_DESTINATION, selectedItem = "Map") } - composeTestRule.onNodeWithTag("bottomNavigationMenu").assertIsDisplayed() LIST_TOP_LEVEL_DESTINATION.forEach { tab -> composeTestRule.onNodeWithTag(tab.textId).assertIsDisplayed() @@ -32,55 +33,48 @@ class BottomNavigationMenuTest { @SuppressLint("UnrememberedMutableState") @Test - fun bottomNavigationMenu_clickOnTab_changesSelection() { - var selectedTab by mutableStateOf(Route.MAP) // Initially selected tab is "MAP" + fun clickOnTabChangesSelection() { + + var selectedTab by mutableStateOf(Route.MAP) - // Set the composable content with an initial selected tab composeTestRule.setContent { BottomNavigationMenu( onTabSelect = { selectedTab = it.route }, tabList = LIST_TOP_LEVEL_DESTINATION, selectedItem = selectedTab) } - - // Initially, verify that "MAP" is selected composeTestRule.onNodeWithTag("Map").assertIsSelected() - - // Perform a click on the "Alert" tab composeTestRule.onNodeWithTag("Alert").performClick() - - // Now check that the "Alert" tab is selected composeTestRule.onNodeWithTag("Alert").assertIsSelected() - - // Optionally, check that the previously selected "Map" tab is no longer selected composeTestRule.onNodeWithTag("Map").assertIsNotSelected() } @Test - fun bottomNavigationMenu_iconAndLabelAreDisplayedCorrectly() { + fun iconAndLabelAreCorrectlyDisplayed() { + composeTestRule.setContent { BottomNavigationMenu( onTabSelect = {}, tabList = LIST_TOP_LEVEL_DESTINATION, selectedItem = "Profile") } - LIST_TOP_LEVEL_DESTINATION.forEach { tab -> composeTestRule.onNodeWithTag(tab.textId).assertIsDisplayed() - composeTestRule.onNodeWithTag(tab.textId).assertIsDisplayed() + composeTestRule.onNodeWithText(tab.textId).assertIsDisplayed() } } @Test - fun bottomNavigationMenu_initialSelectionIsCorrect() { + fun initialSelectionIsCorrect() { + composeTestRule.setContent { BottomNavigationMenu( onTabSelect = {}, tabList = LIST_TOP_LEVEL_DESTINATION, selectedItem = "Timer") } - composeTestRule.onNodeWithTag("Timer").assertIsSelected() } @Test - fun bottomNavigationMenu_selectingSameTabDoesNotCrash() { + fun selectingSameTabDoesNotCrash() { + var selectedTab = Route.ALERT_LIST composeTestRule.setContent { @@ -89,7 +83,6 @@ class BottomNavigationMenuTest { tabList = LIST_TOP_LEVEL_DESTINATION, selectedItem = selectedTab) } - composeTestRule.onNodeWithTag("Alert List").performClick() composeTestRule.onNodeWithTag("Alert List").assertIsSelected() }