From 0ccd3b353d35bbb965840f372b86d0061fec7394 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 8 Sep 2020 05:58:31 +0530 Subject: [PATCH] Add test to ensure new item is added correctly Signed-off-by: Harsh Shandilya --- .../dev/msfjarvis/todo/MainActivityTest.kt | 23 +++++++++++++++++++ .../java/dev/msfjarvis/todo/MainActivity.kt | 4 +++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/src/androidTest/java/dev/msfjarvis/todo/MainActivityTest.kt b/app/src/androidTest/java/dev/msfjarvis/todo/MainActivityTest.kt index a6c26a11..0c287613 100644 --- a/app/src/androidTest/java/dev/msfjarvis/todo/MainActivityTest.kt +++ b/app/src/androidTest/java/dev/msfjarvis/todo/MainActivityTest.kt @@ -1,9 +1,13 @@ package dev.msfjarvis.todo +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.ui.test.assertIsDisplayed import androidx.ui.test.createComposeRule import androidx.ui.test.onNodeWithTag +import androidx.ui.test.onNodeWithText import androidx.ui.test.performClick +import androidx.ui.test.performTextInput import dev.msfjarvis.todo.data.model.TodoItem import dev.msfjarvis.todo.ui.TodoTheme import org.junit.Rule @@ -29,4 +33,23 @@ class MainActivityTest { onNodeWithTag("fab").performClick() onNodeWithTag("item_dialog").assertIsDisplayed() } + + @Test + fun item_addition_adds_new_entry() { + composeTestRule.setContent { + val items by mutableStateOf(arrayListOf()) + TodoTheme { + TodoApp( + items, + items::add, + items::remove, + ) + } + } + onNodeWithText("Item 1").assertDoesNotExist() + onNodeWithTag("fab").performClick() + onNodeWithTag("item_name").performTextInput("Item 1") + onNodeWithTag("add_button").performClick() + onNodeWithText("Item 1").assertIsDisplayed() + } } diff --git a/app/src/main/java/dev/msfjarvis/todo/MainActivity.kt b/app/src/main/java/dev/msfjarvis/todo/MainActivity.kt index 0987226f..c5d0f85e 100644 --- a/app/src/main/java/dev/msfjarvis/todo/MainActivity.kt +++ b/app/src/main/java/dev/msfjarvis/todo/MainActivity.kt @@ -108,6 +108,7 @@ fun ItemAddDialog( value = newItemName, onValueChange = { newItemName = it }, label = { Text(text = "Name") }, + modifier = Modifier.testTag("item_name") ) }, confirmButton = { @@ -118,7 +119,8 @@ fun ItemAddDialog( newItemName = TextFieldValue("") hideDialog.invoke() } - } + }, + modifier = Modifier.testTag("add_button") ) { Text(text = "Add") }