From 460c93a4adfd6bc33e240ddf724dd384b2b1604c Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Fri, 15 Aug 2025 16:06:25 +0530 Subject: [PATCH] Fixed: `observeLanguages uses network when no cache and online` which sometimes fails on CI. --- .../viewmodel/LanguageViewModelTest.kt | 50 ++++++++++--------- .../download/CustomDownloadViewModelTest.kt | 1 - 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/app/src/test/java/org/kiwix/kiwixmobile/language/viewmodel/LanguageViewModelTest.kt b/app/src/test/java/org/kiwix/kiwixmobile/language/viewmodel/LanguageViewModelTest.kt index 23c952908..d2f10ccad 100644 --- a/app/src/test/java/org/kiwix/kiwixmobile/language/viewmodel/LanguageViewModelTest.kt +++ b/app/src/test/java/org/kiwix/kiwixmobile/language/viewmodel/LanguageViewModelTest.kt @@ -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) diff --git a/custom/src/test/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadViewModelTest.kt b/custom/src/test/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadViewModelTest.kt index e754807c3..ef0fed93d 100644 --- a/custom/src/test/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadViewModelTest.kt +++ b/custom/src/test/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadViewModelTest.kt @@ -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) } )