77
88package io.element.android.features.verifysession.impl.outgoing
99
10- import app.cash.molecule.RecompositionMode
11- import app.cash.molecule.moleculeFlow
1210import app.cash.turbine.ReceiveTurbine
13- import app.cash.turbine.test
1411import com.google.common.truth.Truth.assertThat
1512import io.element.android.features.logout.api.LogoutUseCase
1613import io.element.android.features.logout.test.FakeLogoutUseCase
@@ -33,6 +30,7 @@ import io.element.android.tests.testutils.WarmUpRule
3330import io.element.android.tests.testutils.lambda.lambdaError
3431import io.element.android.tests.testutils.lambda.lambdaRecorder
3532import io.element.android.tests.testutils.lambda.value
33+ import io.element.android.tests.testutils.test
3634import kotlinx.coroutines.ExperimentalCoroutinesApi
3735import kotlinx.coroutines.test.runTest
3836import org.junit.Rule
@@ -48,9 +46,7 @@ class VerifySelfSessionPresenterTest {
4846 val presenter = createVerifySelfSessionPresenter(
4947 service = unverifiedSessionService(),
5048 )
51- moleculeFlow(RecompositionMode .Immediate ) {
52- presenter.present()
53- }.test {
49+ presenter.test {
5450 awaitItem().run {
5551 assertThat(step).isEqualTo(Step .Initial (false ))
5652 assertThat(displaySkipButton).isTrue()
@@ -65,9 +61,7 @@ class VerifySelfSessionPresenterTest {
6561 service = unverifiedSessionService(),
6662 buildMeta = buildMeta,
6763 )
68- moleculeFlow(RecompositionMode .Immediate ) {
69- presenter.present()
70- }.test {
64+ presenter.test {
7165 assertThat(awaitItem().displaySkipButton).isFalse()
7266 }
7367 }
@@ -83,9 +77,7 @@ class VerifySelfSessionPresenterTest {
8377 emitRecoveryState(RecoveryState .INCOMPLETE )
8478 }
8579 )
86- moleculeFlow(RecompositionMode .Immediate ) {
87- presenter.present()
88- }.test {
80+ presenter.test {
8981 assertThat(awaitItem().step).isEqualTo(Step .Initial (true ))
9082 resetLambda.assertions().isCalledOnce().with (value(true ))
9183 }
@@ -100,9 +92,7 @@ class VerifySelfSessionPresenterTest {
10092 emitRecoveryState(RecoveryState .INCOMPLETE )
10193 }
10294 )
103- moleculeFlow(RecompositionMode .Immediate ) {
104- presenter.present()
105- }.test {
95+ presenter.test {
10696 assertThat(awaitItem().step).isEqualTo(Step .Initial (canEnterRecoveryKey = true , isLastDevice = true ))
10797 }
10898 }
@@ -114,9 +104,7 @@ class VerifySelfSessionPresenterTest {
114104 startVerificationLambda = { },
115105 )
116106 val presenter = createVerifySelfSessionPresenter(service)
117- moleculeFlow(RecompositionMode .Immediate ) {
118- presenter.present()
119- }.test {
107+ presenter.test {
120108 requestVerificationAndAwaitVerifyingState(service)
121109 }
122110 }
@@ -126,9 +114,7 @@ class VerifySelfSessionPresenterTest {
126114 val presenter = createVerifySelfSessionPresenter(
127115 service = unverifiedSessionService(),
128116 )
129- moleculeFlow(RecompositionMode .Immediate ) {
130- presenter.present()
131- }.test {
117+ presenter.test {
132118 val initialState = awaitItem()
133119 assertThat(initialState.step).isEqualTo(Step .Initial (false ))
134120 val eventSink = initialState.eventSink
@@ -145,9 +131,7 @@ class VerifySelfSessionPresenterTest {
145131 approveVerificationLambda = { },
146132 )
147133 val presenter = createVerifySelfSessionPresenter(service)
148- moleculeFlow(RecompositionMode .Immediate ) {
149- presenter.present()
150- }.test {
134+ presenter.test {
151135 val state = requestVerificationAndAwaitVerifyingState(service)
152136 state.eventSink(VerifySelfSessionViewEvents .ConfirmVerification )
153137 // Cancelling
@@ -164,9 +148,7 @@ class VerifySelfSessionPresenterTest {
164148 requestVerificationLambda = { },
165149 )
166150 val presenter = createVerifySelfSessionPresenter(service)
167- moleculeFlow(RecompositionMode .Immediate ) {
168- presenter.present()
169- }.test {
151+ presenter.test {
170152 awaitItem().eventSink(VerifySelfSessionViewEvents .UseAnotherDevice )
171153 awaitItem().eventSink(VerifySelfSessionViewEvents .RequestVerification )
172154 service.emitVerificationFlowState(VerificationFlowState .DidFail )
@@ -183,9 +165,7 @@ class VerifySelfSessionPresenterTest {
183165 cancelVerificationLambda = { },
184166 )
185167 val presenter = createVerifySelfSessionPresenter(service)
186- moleculeFlow(RecompositionMode .Immediate ) {
187- presenter.present()
188- }.test {
168+ presenter.test {
189169 val state = requestVerificationAndAwaitVerifyingState(service)
190170 state.eventSink(VerifySelfSessionViewEvents .Cancel )
191171 assertThat(awaitItem().step).isEqualTo(Step .Canceled )
@@ -199,9 +179,7 @@ class VerifySelfSessionPresenterTest {
199179 startVerificationLambda = { },
200180 )
201181 val presenter = createVerifySelfSessionPresenter(service)
202- moleculeFlow(RecompositionMode .Immediate ) {
203- presenter.present()
204- }.test {
182+ presenter.test {
205183 requestVerificationAndAwaitVerifyingState(service)
206184 service.emitVerificationFlowState(VerificationFlowState .DidReceiveVerificationData (SessionVerificationData .Emojis (emptyList())))
207185 ensureAllEventsConsumed()
@@ -215,9 +193,7 @@ class VerifySelfSessionPresenterTest {
215193 startVerificationLambda = { },
216194 )
217195 val presenter = createVerifySelfSessionPresenter(service)
218- moleculeFlow(RecompositionMode .Immediate ) {
219- presenter.present()
220- }.test {
196+ presenter.test {
221197 val state = requestVerificationAndAwaitVerifyingState(service)
222198 service.emitVerificationFlowState(VerificationFlowState .DidCancel )
223199 assertThat(awaitItem().step).isEqualTo(Step .Canceled )
@@ -235,9 +211,7 @@ class VerifySelfSessionPresenterTest {
235211 startVerificationLambda = { },
236212 )
237213 val presenter = createVerifySelfSessionPresenter(service)
238- moleculeFlow(RecompositionMode .Immediate ) {
239- presenter.present()
240- }.test {
214+ presenter.test {
241215 val state = requestVerificationAndAwaitVerifyingState(service)
242216 service.emitVerificationFlowState(VerificationFlowState .DidCancel )
243217 assertThat(awaitItem().step).isEqualTo(Step .Canceled )
@@ -259,9 +233,7 @@ class VerifySelfSessionPresenterTest {
259233 approveVerificationLambda = { },
260234 )
261235 val presenter = createVerifySelfSessionPresenter(service)
262- moleculeFlow(RecompositionMode .Immediate ) {
263- presenter.present()
264- }.test {
236+ presenter.test {
265237 val state = requestVerificationAndAwaitVerifyingState(
266238 service,
267239 SessionVerificationData .Emojis (emojis)
@@ -286,9 +258,7 @@ class VerifySelfSessionPresenterTest {
286258 declineVerificationLambda = { },
287259 )
288260 val presenter = createVerifySelfSessionPresenter(service)
289- moleculeFlow(RecompositionMode .Immediate ) {
290- presenter.present()
291- }.test {
261+ presenter.test {
292262 val state = requestVerificationAndAwaitVerifyingState(service)
293263 state.eventSink(VerifySelfSessionViewEvents .DeclineVerification )
294264 assertThat(awaitItem().step).isEqualTo(
@@ -309,9 +279,7 @@ class VerifySelfSessionPresenterTest {
309279 startVerificationLambda = { },
310280 )
311281 val presenter = createVerifySelfSessionPresenter(service)
312- moleculeFlow(RecompositionMode .Immediate ) {
313- presenter.present()
314- }.test {
282+ presenter.test {
315283 val state = requestVerificationAndAwaitVerifyingState(service)
316284 state.eventSink(VerifySelfSessionViewEvents .SkipVerification )
317285 assertThat(awaitItem().step).isEqualTo(Step .Skipped )
@@ -331,9 +299,7 @@ class VerifySelfSessionPresenterTest {
331299 service = service,
332300 showDeviceVerifiedScreen = true ,
333301 )
334- moleculeFlow(RecompositionMode .Immediate ) {
335- presenter.present()
336- }.test {
302+ presenter.test {
337303 assertThat(awaitItem().step).isEqualTo(Step .Completed )
338304 }
339305 }
@@ -351,9 +317,7 @@ class VerifySelfSessionPresenterTest {
351317 service = service,
352318 showDeviceVerifiedScreen = false ,
353319 )
354- moleculeFlow(RecompositionMode .Immediate ) {
355- presenter.present()
356- }.test {
320+ presenter.test {
357321 skipItems(1 )
358322 assertThat(awaitItem().step).isEqualTo(Step .Skipped )
359323 }
@@ -373,9 +337,7 @@ class VerifySelfSessionPresenterTest {
373337 service,
374338 logoutUseCase = FakeLogoutUseCase (signOutLambda)
375339 )
376- moleculeFlow(RecompositionMode .Immediate ) {
377- presenter.present()
378- }.test {
340+ presenter.test {
379341 skipItems(1 )
380342 val initialItem = awaitItem()
381343 initialItem.eventSink(VerifySelfSessionViewEvents .SignOut )
0 commit comments