@@ -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