Browse Source

Mode test for `ChangeServerView`

jme/20-permission-management
Benoit Marty 2 years ago committed by Benoit Marty
parent
commit
2ea45a9ee1
  1. 12
      features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerStateProvider.kt
  2. 13
      features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt

12
features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerStateProvider.kt

@ -16,8 +16,20 @@ @@ -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<ChangeServerState> {
override val values: Sequence<ChangeServerState>
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,

13
features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerView.kt

@ -42,6 +42,7 @@ import androidx.compose.ui.text.input.ImeAction @@ -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( @@ -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)
}

Loading…
Cancel
Save