Merge branch 'develop' into feature/fga/sending_queue_iteration

This commit is contained in:
ganfra 2024-06-19 13:54:24 +02:00 committed by GitHub
commit b874d3e38c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
31 changed files with 161 additions and 86 deletions

View file

@ -17,16 +17,22 @@
package io.element.android.features.login.impl.changeserver
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.features.login.impl.error.ChangeServerError
import io.element.android.libraries.architecture.AsyncData
import io.element.android.libraries.ui.strings.CommonStrings
open class ChangeServerStateProvider : PreviewParameterProvider<ChangeServerState> {
override val values: Sequence<ChangeServerState>
get() = sequenceOf(
aChangeServerState(),
aChangeServerState(changeServerAction = AsyncData.Failure(ChangeServerError.Error(CommonStrings.error_unknown))),
aChangeServerState(changeServerAction = AsyncData.Failure(ChangeServerError.SlidingSyncAlert)),
)
}
fun aChangeServerState() = ChangeServerState(
changeServerAction = AsyncData.Uninitialized,
fun aChangeServerState(
changeServerAction: AsyncData<Unit> = AsyncData.Uninitialized,
) = ChangeServerState(
changeServerAction = changeServerAction,
eventSink = {}
)

View file

@ -55,6 +55,7 @@ fun SecureBackupEnterRecoveryKeyView(
FlowStepPage(
modifier = modifier,
isScrollable = true,
onBackClick = onBackClick,
iconStyle = BigIcon.Style.Default(CompoundIcons.KeySolid()),
title = stringResource(id = R.string.screen_recovery_key_confirm_title),
@ -70,7 +71,7 @@ private fun Content(
state: SecureBackupEnterRecoveryKeyState,
) {
RecoveryKeyView(
modifier = Modifier.padding(top = 52.dp),
modifier = Modifier.padding(top = 52.dp, bottom = 32.dp),
state = state.recoveryKeyViewState,
onClick = null,
onChange = {

View file

@ -19,8 +19,12 @@ package io.element.android.features.securebackup.impl.enter
import androidx.activity.ComponentActivity
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
import androidx.compose.ui.test.junit4.createAndroidComposeRule
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performImeAction
import androidx.compose.ui.test.performTextInput
import androidx.test.ext.junit.runners.AndroidJUnit4
import io.element.android.features.securebackup.impl.R
import io.element.android.features.securebackup.impl.setup.views.aFormattedRecoveryKey
import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.ui.strings.CommonStrings
import io.element.android.tests.testutils.EnsureNeverCalled
@ -33,6 +37,7 @@ import org.junit.Rule
import org.junit.Test
import org.junit.rules.TestRule
import org.junit.runner.RunWith
import org.robolectric.annotation.Config
@RunWith(AndroidJUnit4::class)
class SecureBackupEnterRecoveryKeyViewTest {
@ -61,6 +66,7 @@ class SecureBackupEnterRecoveryKeyViewTest {
}
@Test
@Config(qualifiers = "h1024dp")
fun `tapping on Continue when key is valid - calls expected action`() {
val recorder = EventsRecorder<SecureBackupEnterRecoveryKeyEvents>()
rule.setSecureBackupEnterRecoveryKeyView(
@ -72,6 +78,31 @@ class SecureBackupEnterRecoveryKeyViewTest {
}
@Test
fun `entering a char emits the expected event`() {
val recorder = EventsRecorder<SecureBackupEnterRecoveryKeyEvents>()
val keyValue = aFormattedRecoveryKey()
rule.setSecureBackupEnterRecoveryKeyView(
aSecureBackupEnterRecoveryKeyState(isSubmitEnabled = true, eventSink = recorder),
)
rule.onNodeWithText(keyValue).performTextInput("X")
recorder.assertSingle(
SecureBackupEnterRecoveryKeyEvents.OnRecoveryKeyChange("X$keyValue")
)
}
@Test
fun `validating from keyboard emits the expected event`() {
val recorder = EventsRecorder<SecureBackupEnterRecoveryKeyEvents>()
val keyValue = aFormattedRecoveryKey()
rule.setSecureBackupEnterRecoveryKeyView(
aSecureBackupEnterRecoveryKeyState(isSubmitEnabled = true, eventSink = recorder),
)
rule.onNodeWithText(keyValue).performImeAction()
recorder.assertSingle(SecureBackupEnterRecoveryKeyEvents.Submit)
}
@Test
@Config(qualifiers = "h1024dp")
fun `tapping on Lost your recovery key - calls onCreateNewRecoveryKey`() {
ensureCalledOnce { callback ->
rule.setSecureBackupEnterRecoveryKeyView(
@ -98,7 +129,7 @@ class SecureBackupEnterRecoveryKeyViewTest {
onBackClick: () -> Unit = EnsureNeverCalled(),
onCreateNewRecoveryKey: () -> Unit = EnsureNeverCalled(),
) {
rule.setContent {
setContent {
SecureBackupEnterRecoveryKeyView(
state = state,
onSuccess = onDone,

View file

@ -218,7 +218,7 @@ class VerifySelfSessionViewTest {
onEnterRecoveryKey: () -> Unit = EnsureNeverCalled(),
onFinished: () -> Unit = EnsureNeverCalled(),
) {
rule.setContent {
setContent {
VerifySelfSessionView(
state = state,
onEnterRecoveryKey = onEnterRecoveryKey,