From 2ea45a9ee19d9e02aa236419a917d0551283c560 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 13 Feb 2023 15:38:27 +0100 Subject: [PATCH] Mode test for `ChangeServerView` --- .../login/changeserver/ChangeServerStateProvider.kt | 12 ++++++++++++ .../features/login/changeserver/ChangeServerView.kt | 13 +++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerStateProvider.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerStateProvider.kt index 85523a9b25..cc70345415 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerStateProvider.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerStateProvider.kt @@ -16,8 +16,20 @@ package io.element.android.features.login.changeserver +import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.libraries.architecture.Async +open class ChangeServerStateProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + aChangeServerState(), + aChangeServerState().copy(homeserver = "matrix.org"), + aChangeServerState().copy(homeserver = "matrix.org", changeServerAction = Async.Loading()), + aChangeServerState().copy(homeserver = "invalid.org", changeServerAction = Async.Failure(Throwable("An error"))), + aChangeServerState().copy(homeserver = "matrix.org", changeServerAction = Async.Success(Unit)), + ) +} + fun aChangeServerState() = ChangeServerState( homeserver = "", changeServerAction = Async.Uninitialized, diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt index 0e1793a3f2..51d8c83c68 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt @@ -42,6 +42,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 io.element.android.features.login.R @@ -179,15 +180,15 @@ fun ChangeServerView( @Preview @Composable -fun ChangeServerViewLightPreview() = ElementPreviewLight { ContentToPreview() } +fun ChangeServerViewLightPreview(@PreviewParameter(ChangeServerStateProvider::class) state: ChangeServerState) = + ElementPreviewLight { ContentToPreview(state) } @Preview @Composable -fun ChangeServerViewDarkPreview() = ElementPreviewDark { ContentToPreview() } +fun ChangeServerViewDarkPreview(@PreviewParameter(ChangeServerStateProvider::class) state: ChangeServerState) = + ElementPreviewDark { ContentToPreview(state) } @Composable -private fun ContentToPreview() { - ChangeServerView( - state = aChangeServerState().copy(homeserver = "matrix.org"), - ) +private fun ContentToPreview(state: ChangeServerState) { + ChangeServerView(state = state) }