From 968f7f80fca00733a5fc3daa04954538f6375ae3 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 13 Feb 2023 11:57:40 +0100 Subject: [PATCH] Improve coverage of BugReportView. --- .../rageshake/bugreport/BugReportStateProvider.kt | 11 +++++++++++ .../features/rageshake/bugreport/BugReportView.kt | 13 ++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportStateProvider.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportStateProvider.kt index bda8487001..35f0bb7db7 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportStateProvider.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportStateProvider.kt @@ -16,8 +16,19 @@ package io.element.android.features.rageshake.bugreport +import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.libraries.architecture.Async +open class BugReportStateProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + aBugReportState(), + aBugReportState().copy(formState = BugReportFormState.Default.copy(description = "A long enough description"), hasCrashLogs = true), + aBugReportState().copy(sending = Async.Loading()), + aBugReportState().copy(sending = Async.Success(Unit)), + ) +} + fun aBugReportState() = BugReportState( formState = BugReportFormState.Default, hasCrashLogs = false, diff --git a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt index 1ebc9c83e7..c66247f0b4 100644 --- a/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt +++ b/features/rageshake/src/main/kotlin/io/element/android/features/rageshake/bugreport/BugReportView.kt @@ -40,6 +40,7 @@ import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import coil.compose.AsyncImage @@ -107,7 +108,7 @@ fun BugReportView( .padding(horizontal = 16.dp, vertical = 16.dp), fontSize = 16.sp, color = MaterialTheme.colorScheme.primary, - ) + ) var descriptionFieldState by textFieldState( stateValue = state.formState.description ) @@ -209,15 +210,13 @@ fun BugReportView( @Preview @Composable -fun BugReportViewLightPreview() = ElementPreviewLight { ContentToPreview() } +fun BugReportViewLightPreview(@PreviewParameter(BugReportStateProvider::class) state: BugReportState) = ElementPreviewLight { ContentToPreview(state) } @Preview @Composable -fun BugReportViewDarkPreview() = ElementPreviewDark { ContentToPreview() } +fun BugReportViewDarkPreview(@PreviewParameter(BugReportStateProvider::class) state: BugReportState) = ElementPreviewDark { ContentToPreview(state) } @Composable -private fun ContentToPreview() { - BugReportView( - state = aBugReportState(), - ) +private fun ContentToPreview(state: BugReportState) { + BugReportView(state = state) }