Improve coverage of BugReportView.

This commit is contained in:
Benoit Marty 2023-02-13 11:57:40 +01:00 committed by Benoit Marty
parent ec687edc2d
commit d7f569abed
2 changed files with 17 additions and 7 deletions

View file

@ -16,8 +16,19 @@
package io.element.android.features.rageshake.bugreport package io.element.android.features.rageshake.bugreport
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.architecture.Async import io.element.android.libraries.architecture.Async
open class BugReportStateProvider : PreviewParameterProvider<BugReportState> {
override val values: Sequence<BugReportState>
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( fun aBugReportState() = BugReportState(
formState = BugReportFormState.Default, formState = BugReportFormState.Default,
hasCrashLogs = false, hasCrashLogs = false,

View file

@ -40,6 +40,7 @@ import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview 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.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import coil.compose.AsyncImage import coil.compose.AsyncImage
@ -107,7 +108,7 @@ fun BugReportView(
.padding(horizontal = 16.dp, vertical = 16.dp), .padding(horizontal = 16.dp, vertical = 16.dp),
fontSize = 16.sp, fontSize = 16.sp,
color = MaterialTheme.colorScheme.primary, color = MaterialTheme.colorScheme.primary,
) )
var descriptionFieldState by textFieldState( var descriptionFieldState by textFieldState(
stateValue = state.formState.description stateValue = state.formState.description
) )
@ -209,15 +210,13 @@ fun BugReportView(
@Preview @Preview
@Composable @Composable
fun BugReportViewLightPreview() = ElementPreviewLight { ContentToPreview() } fun BugReportViewLightPreview(@PreviewParameter(BugReportStateProvider::class) state: BugReportState) = ElementPreviewLight { ContentToPreview(state) }
@Preview @Preview
@Composable @Composable
fun BugReportViewDarkPreview() = ElementPreviewDark { ContentToPreview() } fun BugReportViewDarkPreview(@PreviewParameter(BugReportStateProvider::class) state: BugReportState) = ElementPreviewDark { ContentToPreview(state) }
@Composable @Composable
private fun ContentToPreview() { private fun ContentToPreview(state: BugReportState) {
BugReportView( BugReportView(state = state)
state = aBugReportState(),
)
} }