Skip to content

Commit

Permalink
Tests for Progress Bar Feature (#2418)
Browse files Browse the repository at this point in the history
* Tests fir Progress Bar Feature

* addressed review comments

* review comments
  • Loading branch information
nsabale7 authored Feb 7, 2024
1 parent 12a1b9b commit 6140c8a
Showing 1 changed file with 61 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import com.google.android.fhir.datacapture.validation.QuestionnaireResponseValid
import com.google.android.fhir.datacapture.validation.Valid
import com.google.android.fhir.datacapture.views.factories.localDate
import com.google.android.fhir.datacapture.views.factories.localDateTime
import com.google.android.material.progressindicator.LinearProgressIndicator
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import com.google.common.truth.Truth.assertThat
Expand Down Expand Up @@ -519,6 +520,66 @@ class QuestionnaireUiEspressoTest {
}
}

@Test
fun progressBar_shouldBeVisible_withSinglePageQuestionnaire() {
buildFragmentFromQuestionnaire("/text_questionnaire_integer.json")

onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ ->
val linearProgressIndicator = (view as LinearProgressIndicator)
assertThat(linearProgressIndicator.visibility).isEqualTo(View.VISIBLE)
assertThat(linearProgressIndicator.progress).isEqualTo(100)
}
}

@Test
fun progressBar_shouldBeVisible_withPaginatedQuestionnaire() {
buildFragmentFromQuestionnaire("/layout_paginated.json")

onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ ->
val linearProgressIndicator = (view as LinearProgressIndicator)
assertThat(linearProgressIndicator.visibility).isEqualTo(View.VISIBLE)
assertThat(linearProgressIndicator.progress).isEqualTo(50)
}
}

@Test
fun progressBar_shouldProgress_onPaginationNext() {
buildFragmentFromQuestionnaire("/layout_paginated.json")

onView(withId(R.id.pagination_next_button)).perform(ViewActions.click())

onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ ->
val linearProgressIndicator = (view as LinearProgressIndicator)
assertThat(linearProgressIndicator.progress).isEqualTo(100)
}
}

@Test
fun progressBar_shouldBeGone_whenNavigatedToReviewScreen() {
buildFragmentFromQuestionnaire("/text_questionnaire_integer.json", isReviewMode = true)

onView(withId(R.id.review_mode_button)).perform(ViewActions.click())

onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ ->
val linearProgressIndicator = (view as LinearProgressIndicator)
assertThat(linearProgressIndicator.visibility).isEqualTo(View.GONE)
}
}

@Test
fun progressBar_shouldBeVisible_whenNavigatedToEditScreenFromReview() {
buildFragmentFromQuestionnaire("/text_questionnaire_integer.json", isReviewMode = true)

onView(withId(R.id.review_mode_button)).perform(ViewActions.click())

onView(withId(R.id.review_mode_edit_button)).perform(ViewActions.click())

onView(withId(R.id.questionnaire_progress_indicator)).check { view, _ ->
val linearProgressIndicator = (view as LinearProgressIndicator)
assertThat(linearProgressIndicator.visibility).isEqualTo(View.VISIBLE)
}
}

private fun buildFragmentFromQuestionnaire(
fileName: String,
isReviewMode: Boolean = false,
Expand Down

0 comments on commit 6140c8a

Please sign in to comment.