Skip to content

Commit e4bb42e

Browse files
committed
Increase coverage of GroupChannelEditScreen and update snapshot files
1 parent 15fff33 commit e4bb42e

15 files changed

Lines changed: 48 additions & 15 deletions

File tree

stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/channel/info/GroupChannelEditScreen.kt

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import androidx.compose.material3.OutlinedTextFieldDefaults
3838
import androidx.compose.material3.Scaffold
3939
import androidx.compose.material3.Text
4040
import androidx.compose.material3.TopAppBarDefaults
41+
import androidx.compose.material3.rememberModalBottomSheetState
4142
import androidx.compose.runtime.Composable
4243
import androidx.compose.runtime.LaunchedEffect
4344
import androidx.compose.runtime.getValue
@@ -51,6 +52,7 @@ import androidx.compose.ui.Modifier
5152
import androidx.compose.ui.focus.FocusRequester
5253
import androidx.compose.ui.focus.focusRequester
5354
import androidx.compose.ui.platform.LocalContext
55+
import androidx.compose.ui.platform.LocalInspectionMode
5456
import androidx.compose.ui.res.painterResource
5557
import androidx.compose.ui.res.stringResource
5658
import androidx.compose.ui.text.TextRange
@@ -151,9 +153,9 @@ internal fun GroupChannelEditScreen(
151153
private fun ImagePickerSheet(
152154
visible: Boolean,
153155
showRemoveOption: Boolean,
154-
onDismiss: () -> Unit,
155-
onImageSelected: (File) -> Unit,
156-
onImageRemoved: () -> Unit,
156+
onDismiss: () -> Unit = {},
157+
onImageSelected: (File) -> Unit = {},
158+
onImageRemoved: () -> Unit = {},
157159
) {
158160
val context = LocalContext.current
159161
val scope = rememberCoroutineScope()
@@ -174,8 +176,15 @@ private fun ImagePickerSheet(
174176
onResult = onImageSelected,
175177
)
176178

179+
val previewMode = LocalInspectionMode.current
180+
val sheetState = rememberModalBottomSheetState()
181+
LaunchedEffect(previewMode) {
182+
if (previewMode) sheetState.show()
183+
}
184+
177185
if (visible) {
178186
ModalBottomSheet(
187+
sheetState = sheetState,
179188
onDismissRequest = onDismiss,
180189
containerColor = ChatTheme.colors.backgroundCoreApp,
181190
) {
@@ -455,7 +464,7 @@ internal fun GroupChannelEditSaving() {
455464
)
456465
}
457466

458-
@Preview(showBackground = true)
467+
@Preview
459468
@Composable
460469
private fun ImagePickerOptionsPreview() {
461470
ChatTheme {
@@ -465,10 +474,13 @@ private fun ImagePickerOptionsPreview() {
465474

466475
@Composable
467476
internal fun ImagePickerOptionsWithRemove() {
468-
ImagePickerOptions(showRemoveOption = true)
477+
ImagePickerSheet(
478+
visible = true,
479+
showRemoveOption = true,
480+
)
469481
}
470482

471-
@Preview(showBackground = true)
483+
@Preview
472484
@Composable
473485
private fun ImagePickerOptionsNoRemovePreview() {
474486
ChatTheme {
@@ -478,5 +490,8 @@ private fun ImagePickerOptionsNoRemovePreview() {
478490

479491
@Composable
480492
internal fun ImagePickerOptionsNoRemove() {
481-
ImagePickerOptions(showRemoveOption = false)
493+
ImagePickerSheet(
494+
visible = true,
495+
showRemoveOption = false,
496+
)
482497
}

stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/PaparazziComposeTest.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ import androidx.compose.runtime.Composable
3232
import androidx.compose.runtime.CompositionLocalProvider
3333
import androidx.compose.ui.Alignment
3434
import androidx.compose.ui.Modifier
35+
import androidx.compose.ui.graphics.Color
36+
import androidx.compose.ui.graphics.takeOrElse
3537
import androidx.compose.ui.platform.LocalInspectionMode
3638
import androidx.core.app.ActivityOptionsCompat
3739
import androidx.lifecycle.Lifecycle
@@ -53,13 +55,15 @@ internal interface PaparazziComposeTest : MockedChatClientTest {
5355
fun snapshot(
5456
isInDarkMode: Boolean = false,
5557
contentAlignment: Alignment = Alignment.TopStart,
58+
backgroundColor: Color = Color.Unspecified,
5659
composable: @Composable () -> Unit,
5760
) {
5861
paparazzi.snapshot {
5962
TestEnvironment {
6063
ChatTheme(isInDarkMode = isInDarkMode) {
6164
Box(
62-
modifier = Modifier.background(ChatTheme.colors.backgroundCoreApp),
65+
modifier = Modifier
66+
.background(backgroundColor.takeOrElse(ChatTheme.colors::backgroundCoreApp)),
6367
contentAlignment = contentAlignment,
6468
) {
6569
composable()

stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/GroupChannelEditTest.kt renamed to stream-chat-android-compose/src/test/kotlin/io/getstream/chat/android/compose/ui/channel/info/GroupChannelEditScreenTest.kt

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@
1616

1717
package io.getstream.chat.android.compose.ui.channel.info
1818

19-
import androidx.compose.ui.Alignment
19+
import androidx.compose.ui.graphics.Color
2020
import app.cash.paparazzi.DeviceConfig
2121
import app.cash.paparazzi.Paparazzi
2222
import io.getstream.chat.android.compose.ui.PaparazziComposeTest
2323
import org.junit.Rule
2424
import org.junit.Test
2525

26-
internal class GroupChannelEditTest : PaparazziComposeTest {
26+
internal class GroupChannelEditScreenTest : PaparazziComposeTest {
2727

2828
@get:Rule
29-
override val paparazzi = Paparazzi(deviceConfig = DeviceConfig.PIXEL_4A)
29+
override val paparazzi = Paparazzi(deviceConfig = DeviceConfig.PIXEL_2)
3030

3131
@Test
3232
fun placeholder() {
@@ -50,15 +50,29 @@ internal class GroupChannelEditTest : PaparazziComposeTest {
5050
}
5151

5252
@Test
53-
fun `image picker with remove`() {
54-
snapshotWithDarkMode(contentAlignment = Alignment.BottomCenter) {
53+
fun `image picker with remove in light mode`() {
54+
snapshot(backgroundColor = Color.Transparent) {
5555
ImagePickerOptionsWithRemove()
5656
}
5757
}
5858

5959
@Test
60-
fun `image picker no remove`() {
61-
snapshotWithDarkMode(contentAlignment = Alignment.BottomCenter) {
60+
fun `image picker with remove in dark mode`() {
61+
snapshot(backgroundColor = Color.Transparent, isInDarkMode = true) {
62+
ImagePickerOptionsWithRemove()
63+
}
64+
}
65+
66+
@Test
67+
fun `image picker no remove in light mode`() {
68+
snapshot(backgroundColor = Color.Transparent) {
69+
ImagePickerOptionsNoRemove()
70+
}
71+
}
72+
73+
@Test
74+
fun `image picker no remove in dark mode`() {
75+
snapshot(backgroundColor = Color.Transparent, isInDarkMode = true) {
6276
ImagePickerOptionsNoRemove()
6377
}
6478
}
Loading
Loading
Loading
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)