@@ -19,6 +19,8 @@ package com.duckduckgo.duckchat.impl.ui.settings
1919import app.cash.turbine.test
2020import com.duckduckgo.app.statistics.pixels.Pixel
2121import com.duckduckgo.common.test.CoroutineTestRule
22+ import com.duckduckgo.duckchat.api.DuckChatNativeSettingsNoParams
23+ import com.duckduckgo.duckchat.api.DuckChatSettingsNoParams
2224import com.duckduckgo.duckchat.impl.DuckChatInternal
2325import com.duckduckgo.duckchat.impl.R
2426import 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