@@ -20,13 +20,16 @@ import app.cash.turbine.test
20
20
import com.google.common.truth.Truth.assertThat
21
21
import io.element.android.libraries.architecture.AsyncData
22
22
import io.element.android.libraries.matrix.api.encryption.IdentityResetHandle
23
+ import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatus
23
24
import io.element.android.libraries.matrix.test.FakeMatrixClient
24
25
import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService
25
26
import io.element.android.libraries.matrix.test.encryption.FakeIdentityPasswordResetHandle
26
27
import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService
27
28
import io.element.android.tests.testutils.lambda.lambdaRecorder
28
29
import kotlinx.coroutines.CoroutineScope
30
+ import kotlinx.coroutines.ExperimentalCoroutinesApi
29
31
import kotlinx.coroutines.test.TestScope
32
+ import kotlinx.coroutines.test.advanceUntilIdle
30
33
import kotlinx.coroutines.test.runTest
31
34
import org.junit.Test
32
35
@@ -106,6 +109,32 @@ class ResetIdentityFlowManagerTest {
106
109
}
107
110
}
108
111
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
+
109
138
private fun TestScope.createFlowManager (
110
139
encryptionService : FakeEncryptionService = FakeEncryptionService (),
111
140
client : FakeMatrixClient = FakeMatrixClient (encryptionService = encryptionService),
0 commit comments