Skip to content

Commit a76d661

Browse files
committed
added missing tests
1 parent e1c070c commit a76d661

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/ui/DuckChatWebViewFragment.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ open class DuckChatWebViewFragment : DuckDuckGoFragment(R.layout.activity_duck_c
350350
}
351351

352352
private fun configureLegacyOmnibar() {
353+
root.findViewById<View>(R.id.includeToolbar).show()
353354
toolbar?.let {
354355
it.setNavigationIcon(com.duckduckgo.mobile.android.R.drawable.ic_arrow_left_24)
355356
it.setNavigationOnClickListener {

duckchat/duckchat-impl/src/test/java/com/duckduckgo/duckchat/impl/ui/DuckChatWebViewViewModelTest.kt

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package com.duckduckgo.duckchat.impl.ui
1919
import androidx.test.ext.junit.runners.AndroidJUnit4
2020
import app.cash.turbine.test
2121
import com.duckduckgo.common.test.CoroutineTestRule
22+
import com.duckduckgo.duckchat.impl.DuckChatInternal
2223
import com.duckduckgo.duckchat.impl.ui.DuckChatWebViewViewModel.Command
2324
import com.duckduckgo.subscriptions.api.SubscriptionStatus
2425
import com.duckduckgo.subscriptions.api.SubscriptionStatus.AUTO_RENEWABLE
@@ -27,7 +28,9 @@ import com.duckduckgo.subscriptions.api.SubscriptionStatus.INACTIVE
2728
import com.duckduckgo.subscriptions.api.SubscriptionStatus.UNKNOWN
2829
import com.duckduckgo.subscriptions.api.Subscriptions
2930
import kotlinx.coroutines.flow.MutableSharedFlow
31+
import kotlinx.coroutines.flow.flowOf
3032
import kotlinx.coroutines.test.runTest
33+
import org.junit.Assert.assertFalse
3134
import org.junit.Assert.assertTrue
3235
import org.junit.Before
3336
import org.junit.Rule
@@ -43,14 +46,17 @@ class DuckChatWebViewViewModelTest {
4346
val coroutineTestRule: CoroutineTestRule = CoroutineTestRule()
4447

4548
private val subscriptions: Subscriptions = mock()
49+
private val duckChat: DuckChatInternal = mock()
4650
private val subscriptionStatusFlow = MutableSharedFlow<SubscriptionStatus>()
4751

4852
private lateinit var viewModel: DuckChatWebViewViewModel
4953

5054
@Before
5155
fun setup() {
5256
whenever(subscriptions.getSubscriptionStatusFlow()).thenReturn(subscriptionStatusFlow)
53-
viewModel = DuckChatWebViewViewModel(subscriptions)
57+
whenever(duckChat.observeEnableDuckChatUserSetting()).thenReturn(flowOf(true))
58+
whenever(duckChat.observeFullscreenModeUserSetting()).thenReturn(flowOf(true))
59+
viewModel = DuckChatWebViewViewModel(subscriptions, duckChat)
5460
}
5561

5662
@Test
@@ -135,4 +141,38 @@ class DuckChatWebViewViewModelTest {
135141
}
136142
}
137143
}
144+
145+
@Test
146+
fun `fullscreen mode - when flags enabled, then viewstate enabled`() =
147+
runTest {
148+
whenever(duckChat.observeEnableDuckChatUserSetting()).thenReturn(flowOf(true))
149+
whenever(duckChat.observeFullscreenModeUserSetting()).thenReturn(flowOf(true))
150+
viewModel = DuckChatWebViewViewModel(
151+
subscriptions,
152+
duckChat = duckChat,
153+
)
154+
155+
viewModel.viewState.test {
156+
val state = awaitItem()
157+
assertTrue(state.isDuckChatUserEnabled)
158+
assertTrue(state.isFullScreenModeEnabled)
159+
}
160+
}
161+
162+
@Test
163+
fun `fullscreen mode - when flags disabled, then viewstate disabled`() =
164+
runTest {
165+
whenever(duckChat.observeEnableDuckChatUserSetting()).thenReturn(flowOf(false))
166+
whenever(duckChat.observeFullscreenModeUserSetting()).thenReturn(flowOf(false))
167+
viewModel = DuckChatWebViewViewModel(
168+
subscriptions,
169+
duckChat = duckChat,
170+
)
171+
172+
viewModel.viewState.test {
173+
val state = awaitItem()
174+
assertFalse(state.isDuckChatUserEnabled)
175+
assertFalse(state.isFullScreenModeEnabled)
176+
}
177+
}
138178
}

0 commit comments

Comments
 (0)