mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-24 05:04:50 -04:00
Fixed: The books deletes entities whose file does not exist
and Save uses active language
unit test cases, which were occasionally failing on CI.
This commit is contained in:
parent
b12b654c6a
commit
9e7ccc8e16
@ -29,8 +29,11 @@ import io.mockk.every
|
||||
import io.mockk.just
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.test.advanceTimeBy
|
||||
import kotlinx.coroutines.test.advanceUntilIdle
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
@ -171,15 +174,17 @@ class LanguageViewModelTest {
|
||||
)
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
@Test
|
||||
fun `Save uses active language`() = runTest {
|
||||
every { application.getString(any()) } returns ""
|
||||
val activeLanguage = language(languageCode = "eng").copy(active = true)
|
||||
val inactiveLanguage = language(languageCode = "fr").copy(active = false)
|
||||
languageViewModel.effects.test {
|
||||
val contentState = Content(listOf(activeLanguage, inactiveLanguage))
|
||||
languageViewModel.state.value = contentState
|
||||
languageViewModel.state.value = Content(listOf(activeLanguage, inactiveLanguage))
|
||||
languageViewModel.actions.emit(Save)
|
||||
advanceUntilIdle()
|
||||
advanceTimeBy(100)
|
||||
val effect = awaitItem() as SaveLanguagesAndFinish
|
||||
assertThat(effect.languages).isEqualTo(activeLanguage)
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ package org.kiwix.kiwixmobile.core.dao
|
||||
import io.mockk.CapturingSlot
|
||||
import io.mockk.clearAllMocks
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.coVerify
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import io.mockk.mockkStatic
|
||||
@ -50,6 +51,8 @@ import org.kiwix.sharedFunctions.libkiwixBook
|
||||
import java.io.File
|
||||
import java.util.concurrent.Callable
|
||||
|
||||
const val MOCKK_TIMEOUT_FOR_VERIFICATION = 1000L
|
||||
|
||||
internal class NewBookDaoTest {
|
||||
private val box: Box<BookOnDiskEntity> = mockk(relaxed = true)
|
||||
private val newBookDao = NewBookDao(box)
|
||||
@ -77,7 +80,11 @@ internal class NewBookDaoTest {
|
||||
testFlow(
|
||||
flow = newBookDao.books(),
|
||||
triggerAction = {},
|
||||
assert = { verify { box.remove(listOf(deletedEntity)) } }
|
||||
assert = {
|
||||
coVerify(timeout = MOCKK_TIMEOUT_FOR_VERIFICATION) {
|
||||
box.remove(listOf(deletedEntity))
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user