mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-17 03:16:27 -04:00
#2154 updated historyviewmodel tests
This commit is contained in:
parent
f5f404a860
commit
7ea60e6e3f
@ -1,6 +1,5 @@
|
||||
package org.kiwix.kiwixmobile.core.page.history.viewmodel
|
||||
|
||||
import com.jraska.livedata.test
|
||||
import io.mockk.clearAllMocks
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@ -18,11 +17,8 @@ import org.kiwix.kiwixmobile.core.page.history.viewmodel.effects.ShowDeleteHisto
|
||||
import org.kiwix.kiwixmobile.core.page.history.viewmodel.effects.UpdateAllHistoryPreference
|
||||
import org.kiwix.kiwixmobile.core.page.historyItem
|
||||
import org.kiwix.kiwixmobile.core.page.historyState
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.ExitActionModeMenu
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.Filter
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.UpdatePages
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.UserClickedDeleteButton
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.UserClickedDeleteSelectedPages
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.Action.UserClickedShowAllToggle
|
||||
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer
|
||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||
@ -63,46 +59,55 @@ internal class HistoryViewModelTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun `ExitActionModeMenu deselects history items`() {
|
||||
viewModel.state.postValue(historyState(historyItems = listOf(historyItem(isSelected = true))))
|
||||
viewModel.actions.offer(ExitActionModeMenu)
|
||||
viewModel.state.test().assertValue(
|
||||
historyState(historyItems = listOf(historyItem(isSelected = false)))
|
||||
fun `updatePagesBasedOnFilter returns state with searchTerm`() {
|
||||
assertThat(viewModel.updatePagesBasedOnFilter(historyState(), Filter("searchTerm")))
|
||||
.isEqualTo(
|
||||
historyState(searchTerm = "searchTerm")
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun `UserClickedDeleteButton offers ShowDeleteHistoryDialog`() {
|
||||
viewModel.effects.test().also { viewModel.actions.offer(UserClickedDeleteButton) }
|
||||
.assertValue(ShowDeleteHistoryDialog(viewModel.effects, historyState(), historyDao))
|
||||
viewModel.state.test().assertValue(historyState())
|
||||
fun `updatePages return state with history items`() {
|
||||
assertThat(viewModel.updatePages(historyState(), UpdatePages(listOf(historyItem())))).isEqualTo(
|
||||
historyState(listOf(historyItem()))
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun `UserClickedDeleteSelectedHistoryItems offers ShowDeleteHistoryDialog`() {
|
||||
viewModel.effects.test().also { viewModel.actions.offer(UserClickedDeleteSelectedPages) }
|
||||
.assertValue(ShowDeleteHistoryDialog(viewModel.effects, historyState(), historyDao))
|
||||
viewModel.state.test().assertValue(historyState())
|
||||
fun `offerUpdateToShowAllToggle offers UpdateAllHistoryPreference`() {
|
||||
viewModel.effects.test().also {
|
||||
viewModel.offerUpdateToShowAllToggle(
|
||||
UserClickedShowAllToggle(false), historyState()
|
||||
)
|
||||
}.assertValues(UpdateAllHistoryPreference(sharedPreferenceUtil, false))
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun `UserClickedShowAllToggle offers UpdateAllHistoryPreference`() {
|
||||
viewModel.effects.test()
|
||||
.also { viewModel.actions.offer(UserClickedShowAllToggle(false)) }
|
||||
.assertValue(UpdateAllHistoryPreference(sharedPreferenceUtil, false))
|
||||
viewModel.state.test().assertValue(historyState(showAll = false))
|
||||
fun `offerUpdateToShowAllToggle returns state with showAll set to input value`() {
|
||||
assertThat(
|
||||
viewModel.offerUpdateToShowAllToggle(
|
||||
UserClickedShowAllToggle(false),
|
||||
historyState()
|
||||
)
|
||||
).isEqualTo(historyState(showAll = false))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `Filter updates search term`() {
|
||||
val searchTerm = "searchTerm"
|
||||
viewModel.actions.offer(Filter(searchTerm))
|
||||
viewModel.state.test().assertValue(historyState(searchTerm = searchTerm))
|
||||
fun `createDeletePageDialogEffect returns ShowDeleteHistoryDialog`() {
|
||||
assertThat(viewModel.createDeletePageDialogEffect(historyState())).isEqualTo(
|
||||
ShowDeleteHistoryDialog(viewModel.effects, historyState(), historyDao)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun `UpdatePages updates history`() {
|
||||
viewModel.actions.offer(UpdatePages(listOf(historyItem())))
|
||||
viewModel.state.test().assertValue(historyState(listOf(historyItem())))
|
||||
fun `deselectAllPages returns state with all pages deselected`() {
|
||||
assertThat(viewModel.deselectAllPages(historyState(listOf(historyItem(isSelected = true)))))
|
||||
.isEqualTo(historyState(listOf(historyItem(isSelected = false))))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `copyWithNewItems returns state with new items`() {
|
||||
assertThat(viewModel.copyWithNewItems(historyState(), listOf(historyItem(isSelected = true))))
|
||||
.isEqualTo(historyState(listOf(historyItem(isSelected = true))))
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user