Skip to content

Commit d5eb71a

Browse files
committed
Add an extra test
1 parent f41e42d commit d5eb71a

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/reset/ResetIdentityFlowManagerTest.kt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,16 @@ import app.cash.turbine.test
2020
import com.google.common.truth.Truth.assertThat
2121
import io.element.android.libraries.architecture.AsyncData
2222
import io.element.android.libraries.matrix.api.encryption.IdentityResetHandle
23+
import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatus
2324
import io.element.android.libraries.matrix.test.FakeMatrixClient
2425
import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService
2526
import io.element.android.libraries.matrix.test.encryption.FakeIdentityPasswordResetHandle
2627
import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService
2728
import io.element.android.tests.testutils.lambda.lambdaRecorder
2829
import kotlinx.coroutines.CoroutineScope
30+
import kotlinx.coroutines.ExperimentalCoroutinesApi
2931
import kotlinx.coroutines.test.TestScope
32+
import kotlinx.coroutines.test.advanceUntilIdle
3033
import kotlinx.coroutines.test.runTest
3134
import org.junit.Test
3235

@@ -106,6 +109,32 @@ class ResetIdentityFlowManagerTest {
106109
}
107110
}
108111

112+
@OptIn(ExperimentalCoroutinesApi::class)
113+
@Test
114+
fun `whenResetIsDone - will trigger the lambda when verification status is verified`() = runTest {
115+
val verificationService = FakeSessionVerificationService()
116+
val flowManager = createFlowManager(sessionVerificationService = verificationService)
117+
var isDone = false
118+
119+
flowManager.whenResetIsDone {
120+
isDone = true
121+
}
122+
123+
assertThat(isDone).isFalse()
124+
125+
verificationService.emitVerifiedStatus(SessionVerifiedStatus.Unknown)
126+
advanceUntilIdle()
127+
assertThat(isDone).isFalse()
128+
129+
verificationService.emitVerifiedStatus(SessionVerifiedStatus.NotVerified)
130+
advanceUntilIdle()
131+
assertThat(isDone).isFalse()
132+
133+
verificationService.emitVerifiedStatus(SessionVerifiedStatus.Verified)
134+
advanceUntilIdle()
135+
assertThat(isDone).isTrue()
136+
}
137+
109138
private fun TestScope.createFlowManager(
110139
encryptionService: FakeEncryptionService = FakeEncryptionService(),
111140
client: FakeMatrixClient = FakeMatrixClient(encryptionService = encryptionService),

0 commit comments

Comments
 (0)