From 08ed272991f9717baadfeccc556e4daa3ad18a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Mart=C3=ADn?= Date: Tue, 13 Aug 2024 08:54:56 +0200 Subject: [PATCH] Add an extra test --- .../reset/ResetIdentityFlowManagerTest.kt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/reset/ResetIdentityFlowManagerTest.kt b/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/reset/ResetIdentityFlowManagerTest.kt index 3a1e1898e3..eb33fe5c36 100644 --- a/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/reset/ResetIdentityFlowManagerTest.kt +++ b/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/reset/ResetIdentityFlowManagerTest.kt @@ -20,13 +20,16 @@ import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.matrix.api.encryption.IdentityResetHandle +import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatus import io.element.android.libraries.matrix.test.FakeMatrixClient import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService import io.element.android.libraries.matrix.test.encryption.FakeIdentityPasswordResetHandle import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService import io.element.android.tests.testutils.lambda.lambdaRecorder import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest import org.junit.Test @@ -106,6 +109,32 @@ class ResetIdentityFlowManagerTest { } } + @OptIn(ExperimentalCoroutinesApi::class) + @Test + fun `whenResetIsDone - will trigger the lambda when verification status is verified`() = runTest { + val verificationService = FakeSessionVerificationService() + val flowManager = createFlowManager(sessionVerificationService = verificationService) + var isDone = false + + flowManager.whenResetIsDone { + isDone = true + } + + assertThat(isDone).isFalse() + + verificationService.emitVerifiedStatus(SessionVerifiedStatus.Unknown) + advanceUntilIdle() + assertThat(isDone).isFalse() + + verificationService.emitVerifiedStatus(SessionVerifiedStatus.NotVerified) + advanceUntilIdle() + assertThat(isDone).isFalse() + + verificationService.emitVerifiedStatus(SessionVerifiedStatus.Verified) + advanceUntilIdle() + assertThat(isDone).isTrue() + } + private fun TestScope.createFlowManager( encryptionService: FakeEncryptionService = FakeEncryptionService(), client: FakeMatrixClient = FakeMatrixClient(encryptionService = encryptionService),