Fixed: observeLanguages uses network when no cache and online which sometimes fails on CI.

This commit is contained in:
MohitMaliFtechiz 2025-08-15 16:06:25 +05:30 committed by Kelson
parent 9ef9f1b0fe
commit 460c93a4ad
2 changed files with 26 additions and 25 deletions

View File

@ -144,34 +144,36 @@ class LanguageViewModelTest {
}
@Test
fun `observeLanguages uses network when no cache and online`() = runTest {
every { application.getString(any()) } returns ""
val fetchedLanguages = listOf(language(languageCode = "eng"))
LanguageSessionCache.hasFetched = false
languages.value = emptyList()
fun `observeLanguages uses network when no cache and online`() = flakyTest {
runTest {
every { application.getString(any()) } returns ""
val fetchedLanguages = listOf(language(languageCode = "eng"))
LanguageSessionCache.hasFetched = false
languages.value = emptyList()
every { sharedPreferenceUtil.getCachedLanguageList() } returns null
coEvery { kiwixService.getLanguages() } returns LanguageFeed().apply {
entries = fetchedLanguages.map {
LanguageEntry().apply {
languageCode = it.languageCode
count = 1
title = "English"
every { sharedPreferenceUtil.getCachedLanguageList() } returns null
coEvery { kiwixService.getLanguages() } returns LanguageFeed().apply {
entries = fetchedLanguages.map {
LanguageEntry().apply {
languageCode = it.languageCode
count = 1
title = "English"
}
}
}
}
every { sharedPreferenceUtil.selectedOnlineContentLanguage } returns ""
every { sharedPreferenceUtil.saveLanguageList(any()) } just Runs
every { sharedPreferenceUtil.selectedOnlineContentLanguage } returns ""
every { sharedPreferenceUtil.saveLanguageList(any()) } just Runs
testFlow(
languageViewModel.actions,
triggerAction = {},
assert = {
val result = awaitItem()
assertThat(result).isInstanceOf(UpdateLanguages::class.java)
verify { sharedPreferenceUtil.saveLanguageList(any()) }
}
)
testFlow(
languageViewModel.actions,
triggerAction = {},
assert = {
val result = awaitItem()
assertThat(result).isInstanceOf(UpdateLanguages::class.java)
verify { sharedPreferenceUtil.saveLanguageList(any()) }
}
)
}
}
@OptIn(ExperimentalCoroutinesApi::class)

View File

@ -215,7 +215,6 @@ internal class CustomDownloadViewModelTest {
triggerAction = { customDownloadViewModel.actions.tryEmit(action) },
assert = {
val items = (1..awaitItemCount).map { awaitItem() }
print("items = $items")
assertThat(items).contains(endState)
}
)