Skip to content

Commit 18a2c36

Browse files
committed
Add tests for search section visibility in DuckChatSettingsViewModel
1 parent 8b6df05 commit 18a2c36

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

duckchat/duckchat-impl/src/test/kotlin/com/duckduckgo/duckchat/impl/ui/settings/DuckChatSettingsViewModelTest.kt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ package com.duckduckgo.duckchat.impl.ui.settings
1919
import app.cash.turbine.test
2020
import com.duckduckgo.app.statistics.pixels.Pixel
2121
import com.duckduckgo.common.test.CoroutineTestRule
22+
import com.duckduckgo.duckchat.api.DuckChatNativeSettingsNoParams
23+
import com.duckduckgo.duckchat.api.DuckChatSettingsNoParams
2224
import com.duckduckgo.duckchat.impl.DuckChatInternal
2325
import com.duckduckgo.duckchat.impl.R
2426
import com.duckduckgo.duckchat.impl.inputscreen.ui.metrics.discovery.InputScreenDiscoveryFunnel
@@ -64,6 +66,7 @@ class DuckChatSettingsViewModelTest {
6466
whenever(duckChat.observeShowInAddressBarUserSetting()).thenReturn(flowOf(false))
6567
whenever(duckChat.observeInputScreenUserSettingEnabled()).thenReturn(flowOf(false))
6668
testee = DuckChatSettingsViewModel(
69+
duckChatActivityParams = DuckChatSettingsNoParams,
6770
duckChat = duckChat,
6871
pixel = mockPixel,
6972
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
@@ -147,6 +150,7 @@ class DuckChatSettingsViewModelTest {
147150
runTest {
148151
whenever(duckChat.observeInputScreenUserSettingEnabled()).thenReturn(flowOf(true))
149152
testee = DuckChatSettingsViewModel(
153+
duckChatActivityParams = DuckChatSettingsNoParams,
150154
duckChat = duckChat,
151155
pixel = mockPixel,
152156
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
@@ -164,6 +168,7 @@ class DuckChatSettingsViewModelTest {
164168
runTest {
165169
whenever(duckChat.observeInputScreenUserSettingEnabled()).thenReturn(flowOf(false))
166170
testee = DuckChatSettingsViewModel(
171+
duckChatActivityParams = DuckChatSettingsNoParams,
167172
duckChat = duckChat,
168173
pixel = mockPixel,
169174
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
@@ -182,6 +187,7 @@ class DuckChatSettingsViewModelTest {
182187
whenever(duckChat.observeEnableDuckChatUserSetting()).thenReturn(flowOf(true))
183188
whenever(duckChat.isInputScreenFeatureAvailable()).thenReturn(true)
184189
testee = DuckChatSettingsViewModel(
190+
duckChatActivityParams = DuckChatSettingsNoParams,
185191
duckChat = duckChat,
186192
pixel = mockPixel,
187193
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
@@ -201,6 +207,7 @@ class DuckChatSettingsViewModelTest {
201207
whenever(duckChat.observeEnableDuckChatUserSetting()).thenReturn(flowOf(true))
202208
whenever(duckChat.isInputScreenFeatureAvailable()).thenReturn(false)
203209
testee = DuckChatSettingsViewModel(
210+
duckChatActivityParams = DuckChatSettingsNoParams,
204211
duckChat = duckChat,
205212
pixel = mockPixel,
206213
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
@@ -220,6 +227,7 @@ class DuckChatSettingsViewModelTest {
220227
whenever(duckChat.observeEnableDuckChatUserSetting()).thenReturn(flowOf(false))
221228
whenever(duckChat.observeInputScreenUserSettingEnabled()).thenReturn(flowOf(true))
222229
testee = DuckChatSettingsViewModel(
230+
duckChatActivityParams = DuckChatSettingsNoParams,
223231
duckChat = duckChat,
224232
pixel = mockPixel,
225233
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
@@ -381,6 +389,7 @@ class DuckChatSettingsViewModelTest {
381389
@Suppress("DenyListedApi")
382390
settingsPageFeature.hideAiGeneratedImagesOption().setRawStoredState(State(enable = true))
383391
testee = DuckChatSettingsViewModel(
392+
duckChatActivityParams = DuckChatSettingsNoParams,
384393
duckChat = duckChat,
385394
pixel = mockPixel,
386395
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
@@ -400,6 +409,7 @@ class DuckChatSettingsViewModelTest {
400409
@Suppress("DenyListedApi")
401410
settingsPageFeature.hideAiGeneratedImagesOption().setRawStoredState(State(enable = false))
402411
testee = DuckChatSettingsViewModel(
412+
duckChatActivityParams = DuckChatSettingsNoParams,
403413
duckChat = duckChat,
404414
pixel = mockPixel,
405415
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
@@ -412,4 +422,40 @@ class DuckChatSettingsViewModelTest {
412422
assertFalse(state.isHideGeneratedImagesOptionVisible)
413423
}
414424
}
425+
426+
@Test
427+
fun `when DuckChatSettingsNoParams passed then viewState shows search section visible`() =
428+
runTest {
429+
testee = DuckChatSettingsViewModel(
430+
duckChatActivityParams = DuckChatSettingsNoParams,
431+
duckChat = duckChat,
432+
pixel = mockPixel,
433+
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
434+
settingsPageFeature = settingsPageFeature,
435+
dispatcherProvider = coroutineRule.testDispatcherProvider,
436+
)
437+
438+
testee.viewState.test {
439+
val state = awaitItem()
440+
assertTrue(state.isSearchSectionVisible)
441+
}
442+
}
443+
444+
@Test
445+
fun `when DuckChatNativeSettingsNoParams passed then viewState shows search section hidden`() =
446+
runTest {
447+
testee = DuckChatSettingsViewModel(
448+
duckChatActivityParams = DuckChatNativeSettingsNoParams,
449+
duckChat = duckChat,
450+
pixel = mockPixel,
451+
inputScreenDiscoveryFunnel = mockInputScreenDiscoveryFunnel,
452+
settingsPageFeature = settingsPageFeature,
453+
dispatcherProvider = coroutineRule.testDispatcherProvider,
454+
)
455+
456+
testee.viewState.test {
457+
val state = awaitItem()
458+
assertFalse(state.isSearchSectionVisible)
459+
}
460+
}
415461
}

0 commit comments

Comments
 (0)