ground-android icon indicating copy to clipboard operation
ground-android copied to clipboard

Complete test in OfflineAreSelectorFragmentTest

Open github-actions[bot] opened this issue 10 months ago • 0 comments

https://github.com/google/ground-android/blob/b05b83235266365cc69584699bf25d3da2aca696/app/src/test/java/com/google/android/ground/ui/offlineareas/selector/OfflineAreaSelectorFragmentTest.kt#L90-L91


        matches(hasDescendant(withText(fragment.getString(R.string.offline_area_selector_title))))
      )
  }

  // TODO: Complete below test
  // Issue URL: https://github.com/google/ground-android/issues/3032
  @Test
  fun `stopDownloading cancels active download and updates UI state`() = runWithTestDispatcher {
    composeTestRule.setContent { DownloadProgressDialog(viewModel.downloadProgress.value!!, {}) }

    val progressFlow = MutableSharedFlow<Pair<Int, Int>>()
    whenever(offlineAreaRepository.downloadTiles(any())).thenReturn(progressFlow)

    val downloadProgressValues = mutableListOf<Float>()
    val observer = Observer<Float> { downloadProgressValues.add(it) }

    viewModel.downloadProgress.observeForever(observer)

    viewModel.onDownloadClick()
    advanceUntilIdle()

    progressFlow.emit(Pair(50, 100))
    advanceUntilIdle()

    composeTestRule
      .onNodeWithText(composeTestRule.activity.getString(R.string.cancel))
      .isDisplayed()

    composeTestRule
      .onNodeWithText(composeTestRule.activity.getString(R.string.cancel))
      .performClick()
    progressFlow.emit(Pair(75, 100))

    composeTestRule
      .onNodeWithText(composeTestRule.activity.getString(R.string.cancel))
      .isNotDisplayed()

    assertFalse(viewModel.isDownloadProgressVisible.value!!)
    assertNull(viewModel.downloadJob)

    viewModel.downloadProgress.removeObserver(observer)
  }
}

github-actions[bot] avatar Feb 04 '25 17:02 github-actions[bot]