Compare commits
2 Commits
ff3185b914
...
b7c24af28a
| Author | SHA1 | Date | |
|---|---|---|---|
| b7c24af28a | |||
| 9c7b40a50a |
@ -82,6 +82,7 @@ dependencies {
|
|||||||
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:${rootProject.extra["lifecycle_version"]}")
|
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:${rootProject.extra["lifecycle_version"]}")
|
||||||
implementation("androidx.navigation:navigation-compose:2.7.4")
|
implementation("androidx.navigation:navigation-compose:2.7.4")
|
||||||
|
|
||||||
|
// Testing Depedencies
|
||||||
androidTestImplementation(platform("androidx.compose:compose-bom:2023.10.01"))
|
androidTestImplementation(platform("androidx.compose:compose-bom:2023.10.01"))
|
||||||
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
|
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
|
||||||
androidTestImplementation("androidx.navigation:navigation-testing:2.7.4")
|
androidTestImplementation("androidx.navigation:navigation-testing:2.7.4")
|
||||||
|
|||||||
@ -39,7 +39,7 @@ class CupcakeScreenNavigationTest {
|
|||||||
* Note: To access to an empty activity, the code uses ComponentActivity instead of
|
* Note: To access to an empty activity, the code uses ComponentActivity instead of
|
||||||
* MainActivity.
|
* MainActivity.
|
||||||
*/
|
*/
|
||||||
@get:Rule
|
@get:Rule // Aturan Pengujian
|
||||||
val composeTestRule = createAndroidComposeRule<ComponentActivity>()
|
val composeTestRule = createAndroidComposeRule<ComponentActivity>()
|
||||||
|
|
||||||
private lateinit var navController: TestNavHostController
|
private lateinit var navController: TestNavHostController
|
||||||
@ -54,17 +54,20 @@ class CupcakeScreenNavigationTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Verifikasi Tujuan Awal Aplikasi Dimulai
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_verifyStartDestination() {
|
fun cupcakeNavHost_verifyStartDestination() {
|
||||||
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Fungsi Tombol Kembali di Menu Awal (Tidak ada tombol kembali)
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_verifyBackNavigationNotShownOnStartOrderScreen() {
|
fun cupcakeNavHost_verifyBackNavigationNotShownOnStartOrderScreen() {
|
||||||
val backText = composeTestRule.activity.getString(R.string.back_button)
|
val backText = composeTestRule.activity.getString(R.string.back_button)
|
||||||
composeTestRule.onNodeWithContentDescription(backText).assertDoesNotExist()
|
composeTestRule.onNodeWithContentDescription(backText).assertDoesNotExist()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Pilih Opsi --> Navigasi Ke Halaman Flavor
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_clickOneCupcake_navigatesToSelectFlavorScreen() {
|
fun cupcakeNavHost_clickOneCupcake_navigatesToSelectFlavorScreen() {
|
||||||
composeTestRule.onNodeWithStringId(R.string.one_cupcake)
|
composeTestRule.onNodeWithStringId(R.string.one_cupcake)
|
||||||
@ -72,6 +75,7 @@ class CupcakeScreenNavigationTest {
|
|||||||
navController.assertCurrentRouteName(CupcakeScreen.Flavor.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Flavor.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Next Button --> Navigasi Ke Halaman Pickup (Flavor)
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_clickNextOnFlavorScreen_navigatesToPickupScreen() {
|
fun cupcakeNavHost_clickNextOnFlavorScreen_navigatesToPickupScreen() {
|
||||||
navigateToFlavorScreen()
|
navigateToFlavorScreen()
|
||||||
@ -80,6 +84,7 @@ class CupcakeScreenNavigationTest {
|
|||||||
navController.assertCurrentRouteName(CupcakeScreen.Pickup.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Pickup.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Back Button --> Navigasi Ke Halaman Awal (Flavor)
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_clickBackOnFlavorScreen_navigatesToStartOrderScreen() {
|
fun cupcakeNavHost_clickBackOnFlavorScreen_navigatesToStartOrderScreen() {
|
||||||
navigateToFlavorScreen()
|
navigateToFlavorScreen()
|
||||||
@ -87,6 +92,7 @@ class CupcakeScreenNavigationTest {
|
|||||||
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Cancel Button --> Navigasi Ke Halaman Awal (Flavor)
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_clickCancelOnFlavorScreen_navigatesToStartOrderScreen() {
|
fun cupcakeNavHost_clickCancelOnFlavorScreen_navigatesToStartOrderScreen() {
|
||||||
navigateToFlavorScreen()
|
navigateToFlavorScreen()
|
||||||
@ -95,6 +101,7 @@ class CupcakeScreenNavigationTest {
|
|||||||
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Next Button --> Navigasi Ke Halaman Summary (Pickup)
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_clickNextOnPickupScreen_navigatesToSummaryScreen() {
|
fun cupcakeNavHost_clickNextOnPickupScreen_navigatesToSummaryScreen() {
|
||||||
navigateToPickupScreen()
|
navigateToPickupScreen()
|
||||||
@ -105,6 +112,7 @@ class CupcakeScreenNavigationTest {
|
|||||||
navController.assertCurrentRouteName(CupcakeScreen.Summary.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Summary.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Back Button --> Navigasi Ke Halaman Flavor (Pickup)
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_clickBackOnPickupScreen_navigatesToFlavorScreen() {
|
fun cupcakeNavHost_clickBackOnPickupScreen_navigatesToFlavorScreen() {
|
||||||
navigateToPickupScreen()
|
navigateToPickupScreen()
|
||||||
@ -112,6 +120,7 @@ class CupcakeScreenNavigationTest {
|
|||||||
navController.assertCurrentRouteName(CupcakeScreen.Flavor.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Flavor.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Cancel Button --> Navigasi Ke Halaman Awal (Pickup)
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_clickCancelOnPickupScreen_navigatesToStartOrderScreen() {
|
fun cupcakeNavHost_clickCancelOnPickupScreen_navigatesToStartOrderScreen() {
|
||||||
navigateToPickupScreen()
|
navigateToPickupScreen()
|
||||||
@ -120,6 +129,7 @@ class CupcakeScreenNavigationTest {
|
|||||||
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Testing Cancel Button --> Navigasi Ke Halaman Awal (Summary)
|
||||||
@Test
|
@Test
|
||||||
fun cupcakeNavHost_clickCancelOnSummaryScreen_navigatesToStartOrderScreen() {
|
fun cupcakeNavHost_clickCancelOnSummaryScreen_navigatesToStartOrderScreen() {
|
||||||
navigateToSummaryScreen()
|
navigateToSummaryScreen()
|
||||||
@ -128,6 +138,8 @@ class CupcakeScreenNavigationTest {
|
|||||||
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
navController.assertCurrentRouteName(CupcakeScreen.Start.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// FUNGSI NAVIGASI HALAMAN
|
||||||
private fun navigateToFlavorScreen() {
|
private fun navigateToFlavorScreen() {
|
||||||
composeTestRule.onNodeWithStringId(R.string.one_cupcake)
|
composeTestRule.onNodeWithStringId(R.string.one_cupcake)
|
||||||
.performClick()
|
.performClick()
|
||||||
|
|||||||
@ -56,7 +56,7 @@ import com.example.cupcake.ui.StartOrderScreen
|
|||||||
* enum values that represent the screens in the app
|
* enum values that represent the screens in the app
|
||||||
*/
|
*/
|
||||||
enum class CupcakeScreen(@StringRes val title: Int) {
|
enum class CupcakeScreen(@StringRes val title: Int) {
|
||||||
Start(title = R.string.app_name),
|
Start(title = R.string.app_name), // Tampilan Awal Aplikasi
|
||||||
Flavor(title = R.string.choose_flavor),
|
Flavor(title = R.string.choose_flavor),
|
||||||
Pickup(title = R.string.choose_pickup_date),
|
Pickup(title = R.string.choose_pickup_date),
|
||||||
Summary(title = R.string.order_summary)
|
Summary(title = R.string.order_summary)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user