Skip to content

Commit be9ddaf

Browse files
committed
Fix unit tests
1 parent e83e8bc commit be9ddaf

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

app/src/main/java/com/duckduckgo/app/appearance/AppearanceViewModel.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,17 @@ import com.duckduckgo.app.statistics.pixels.Pixel
3030
import com.duckduckgo.app.tabs.store.TabSwitcherDataStore
3131
import com.duckduckgo.browser.ui.omnibar.OmnibarType
3232
import com.duckduckgo.common.ui.DuckDuckGoTheme
33-
import com.duckduckgo.common.ui.DuckDuckGoTheme.DARK
34-
import com.duckduckgo.common.ui.DuckDuckGoTheme.LIGHT
35-
import com.duckduckgo.common.ui.DuckDuckGoTheme.SYSTEM_DEFAULT
3633
import com.duckduckgo.common.ui.store.ThemingDataStore
3734
import com.duckduckgo.common.utils.DispatcherProvider
3835
import com.duckduckgo.di.scopes.ActivityScope
3936
import kotlinx.coroutines.channels.BufferOverflow
4037
import kotlinx.coroutines.channels.Channel
4138
import kotlinx.coroutines.flow.Flow
4239
import kotlinx.coroutines.flow.MutableStateFlow
40+
import kotlinx.coroutines.flow.SharingStarted
4341
import kotlinx.coroutines.flow.combine
4442
import kotlinx.coroutines.flow.receiveAsFlow
43+
import kotlinx.coroutines.flow.stateIn
4544
import kotlinx.coroutines.flow.update
4645
import kotlinx.coroutines.launch
4746
import kotlinx.coroutines.withContext
@@ -101,7 +100,7 @@ class AppearanceViewModel @Inject constructor(
101100
currentViewState.copy(
102101
isTrackersCountInTabSwitcherEnabled = !isTrackersAnimationTileHidden,
103102
)
104-
}
103+
}.stateIn(viewModelScope, SharingStarted.Lazily, viewState.value)
105104

106105
private val command = Channel<Command>(1, BufferOverflow.DROP_OLDEST)
107106
fun commands(): Flow<Command> = command.receiveAsFlow()
@@ -139,9 +138,9 @@ class AppearanceViewModel @Inject constructor(
139138

140139
val pixelName =
141140
when (selectedTheme) {
142-
LIGHT -> SETTINGS_THEME_TOGGLED_LIGHT
143-
DARK -> SETTINGS_THEME_TOGGLED_DARK
144-
SYSTEM_DEFAULT -> SETTINGS_THEME_TOGGLED_SYSTEM_DEFAULT
141+
DuckDuckGoTheme.LIGHT -> SETTINGS_THEME_TOGGLED_LIGHT
142+
DuckDuckGoTheme.DARK -> SETTINGS_THEME_TOGGLED_DARK
143+
DuckDuckGoTheme.SYSTEM_DEFAULT -> SETTINGS_THEME_TOGGLED_SYSTEM_DEFAULT
145144
}
146145
pixel.fire(pixelName)
147146
}

app/src/test/java/com/duckduckgo/app/appearance/AppearanceViewModelTest.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ internal class AppearanceViewModelTest {
8282
whenever(mockAppSettingsDataStore.omnibarType).thenReturn(OmnibarType.SINGLE_TOP)
8383
whenever(mockTabSwitcherDataStore.isTrackersAnimationInfoTileHidden()).thenReturn(flowOf(false))
8484

85+
initializeViewModel()
86+
}
87+
88+
private fun initializeViewModel() {
8589
testee =
8690
AppearanceViewModel(
8791
mockThemeSettingsDataStore,
@@ -117,7 +121,7 @@ internal class AppearanceViewModelTest {
117121
testee.commands().test {
118122
testee.userRequestedToChangeTheme()
119123

120-
assertEquals(Command.LaunchThemeSettings(DuckDuckGoTheme.LIGHT), awaitItem())
124+
assertEquals(Command.LaunchThemeSettings(DuckDuckGoTheme.SYSTEM_DEFAULT), awaitItem())
121125

122126
cancelAndIgnoreRemainingEvents()
123127
}
@@ -139,8 +143,8 @@ internal class AppearanceViewModelTest {
139143
@Test
140144
fun whenThemeChangedThenDataStoreIsUpdatedAndUpdateThemeCommandIsSent() =
141145
runTest {
146+
givenThemeSelected(DuckDuckGoTheme.LIGHT)
142147
testee.commands().test {
143-
givenThemeSelected(DuckDuckGoTheme.LIGHT)
144148
testee.onThemeSelected(DuckDuckGoTheme.DARK)
145149

146150
verify(mockThemeSettingsDataStore).theme = DuckDuckGoTheme.DARK
@@ -296,6 +300,8 @@ internal class AppearanceViewModelTest {
296300
whenever(mockThemeSettingsDataStore.theme).thenReturn(DuckDuckGoTheme.LIGHT)
297301
whenever(mockAppTheme.isLightModeEnabled()).thenReturn(true)
298302

303+
initializeViewModel()
304+
299305
testee.viewState().test {
300306
val value = expectMostRecentItem()
301307

@@ -310,5 +316,6 @@ internal class AppearanceViewModelTest {
310316
private fun givenThemeSelected(theme: DuckDuckGoTheme) {
311317
whenever(mockThemeSettingsDataStore.theme).thenReturn(theme)
312318
whenever(mockThemeSettingsDataStore.isCurrentlySelected(theme)).thenReturn(true)
319+
initializeViewModel()
313320
}
314321
}

0 commit comments

Comments
 (0)