Skip to content

Commit d57a6cc

Browse files
Update test coverage
1 parent 8ea70e5 commit d57a6cc

File tree

1 file changed

+53
-7
lines changed

1 file changed

+53
-7
lines changed

app/src/test/java/org/groundplatform/android/ui/datacollection/tasks/multiplechoice/MultipleChoiceTaskScreenTest.kt

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,14 @@ class MultipleChoiceTaskScreenTest {
8585
}
8686

8787
@Test
88-
fun displaysTaskHeader_whenTaskIsLoaded() {
88+
fun `displays task header when task is loaded`() {
8989
setupTaskScreen(TASK)
9090

9191
composeTestRule.onNodeWithText("Text label").assertIsDisplayed()
9292
}
9393

9494
@Test
95-
fun rendersSelectOneOptions() {
95+
fun `renders select one options`() {
9696
val multipleChoice = MultipleChoice(OPTIONS, MultipleChoice.Cardinality.SELECT_ONE)
9797
setupTaskScreen(TASK.copy(multipleChoice = multipleChoice))
9898

@@ -101,7 +101,7 @@ class MultipleChoiceTaskScreenTest {
101101
}
102102

103103
@Test
104-
fun rendersSelectMultipleOptions() {
104+
fun `renders select multiple options`() {
105105
val multipleChoice = MultipleChoice(OPTIONS, MultipleChoice.Cardinality.SELECT_MULTIPLE)
106106
setupTaskScreen(TASK.copy(multipleChoice = multipleChoice))
107107

@@ -110,7 +110,7 @@ class MultipleChoiceTaskScreenTest {
110110
}
111111

112112
@Test
113-
fun allowsOnlyOneSelection_forSelectOneCardinality() {
113+
fun `allows only one selection for select one cardinality`() {
114114
val multipleChoice = MultipleChoice(OPTIONS, MultipleChoice.Cardinality.SELECT_ONE)
115115
setupTaskScreen(TASK.copy(multipleChoice = multipleChoice))
116116

@@ -122,7 +122,7 @@ class MultipleChoiceTaskScreenTest {
122122
}
123123

124124
@Test
125-
fun allowsMultipleSelection_forSelectMultipleCardinality() {
125+
fun `allows multiple selection for select multiple cardinality`() {
126126
val multipleChoice = MultipleChoice(OPTIONS, MultipleChoice.Cardinality.SELECT_MULTIPLE)
127127
setupTaskScreen(TASK.copy(multipleChoice = multipleChoice))
128128

@@ -134,7 +134,7 @@ class MultipleChoiceTaskScreenTest {
134134
}
135135

136136
@Test
137-
fun savesOtherText() {
137+
fun `saves other text`() {
138138
val multipleChoice = MultipleChoice(OPTIONS, MultipleChoice.Cardinality.SELECT_MULTIPLE, true)
139139
setupTaskScreen(TASK.copy(multipleChoice = multipleChoice))
140140

@@ -146,7 +146,7 @@ class MultipleChoiceTaskScreenTest {
146146
}
147147

148148
@Test
149-
fun setsInitialActionButtonsState_whenTaskIsOptional() {
149+
fun `sets initial action buttons state when task is optional`() {
150150
setupTaskScreen(TASK)
151151

152152
buttonActionStateChecker.assertButtonStates(
@@ -227,6 +227,52 @@ class MultipleChoiceTaskScreenTest {
227227
buttonActionStateChecker.getNode(ButtonAction.SKIP).assertDoesNotExist()
228228
}
229229

230+
@Test
231+
fun `sets initial action buttons state when task is required`() {
232+
setupTaskScreen(TASK.copy(isRequired = true))
233+
234+
buttonActionStateChecker.assertButtonStates(
235+
ButtonActionState(ButtonAction.PREVIOUS, isEnabled = true, isVisible = true),
236+
ButtonActionState(ButtonAction.SKIP, isEnabled = false, isVisible = false),
237+
ButtonActionState(ButtonAction.NEXT, isEnabled = false, isVisible = true),
238+
)
239+
}
240+
241+
@Test
242+
fun `sets action buttons state when it is the first task`() {
243+
setupTaskScreen(TASK, isFirst = true)
244+
245+
buttonActionStateChecker.assertButtonStates(
246+
ButtonActionState(ButtonAction.PREVIOUS, isEnabled = false, isVisible = true),
247+
ButtonActionState(ButtonAction.SKIP, isEnabled = true, isVisible = true),
248+
ButtonActionState(ButtonAction.NEXT, isEnabled = false, isVisible = true),
249+
)
250+
}
251+
252+
@Test
253+
fun `sets action buttons state when it is the last task`() {
254+
setupTaskScreen(TASK, isLastWithValue = true)
255+
256+
buttonActionStateChecker.assertButtonStates(
257+
ButtonActionState(ButtonAction.PREVIOUS, isEnabled = true, isVisible = true),
258+
ButtonActionState(ButtonAction.SKIP, isEnabled = true, isVisible = true),
259+
ButtonActionState(ButtonAction.DONE, isEnabled = false, isVisible = true),
260+
)
261+
}
262+
263+
@Test
264+
fun `sets action buttons state when data is pre-filled`() {
265+
val multipleChoice = MultipleChoice(OPTIONS, MultipleChoice.Cardinality.SELECT_ONE)
266+
val taskData = MultipleChoiceTaskData(multipleChoice, listOf("option id 1"))
267+
setupTaskScreen(TASK.copy(multipleChoice = multipleChoice), taskData = taskData)
268+
269+
buttonActionStateChecker.assertButtonStates(
270+
ButtonActionState(ButtonAction.PREVIOUS, isEnabled = true, isVisible = true),
271+
ButtonActionState(ButtonAction.SKIP, isEnabled = false, isVisible = false),
272+
ButtonActionState(ButtonAction.NEXT, isEnabled = true, isVisible = true),
273+
)
274+
}
275+
230276
companion object {
231277
private val JOB = Job(id = "job1")
232278

0 commit comments

Comments
 (0)