@@ -35,11 +35,14 @@ import io.element.android.tests.testutils.lambda.assert
3535import io.element.android.tests.testutils.lambda.lambdaRecorder
3636import io.element.android.tests.testutils.lambda.value
3737import io.element.android.tests.testutils.test
38+ import kotlinx.coroutines.ExperimentalCoroutinesApi
3839import kotlinx.coroutines.flow.flowOf
3940import kotlinx.coroutines.test.TestScope
41+ import kotlinx.coroutines.test.advanceUntilIdle
4042import kotlinx.coroutines.test.runTest
4143import org.junit.Test
4244
45+ @OptIn(ExperimentalCoroutinesApi ::class )
4346class PinnedMessagesListPresenterTest {
4447 @Test
4548 fun `present - initial state feature disabled` () = runTest {
@@ -155,6 +158,7 @@ class PinnedMessagesListPresenterTest {
155158 val filledState = awaitItem() as PinnedMessagesListState .Filled
156159 val eventItem = filledState.timelineItems.first() as TimelineItem .Event
157160 filledState.eventSink(PinnedMessagesListEvents .HandleAction (TimelineItemAction .Redact , eventItem))
161+ advanceUntilIdle()
158162 cancelAndIgnoreRemainingEvents()
159163 assert (redactEventLambda)
160164 .isCalledOnce()
@@ -184,9 +188,11 @@ class PinnedMessagesListPresenterTest {
184188
185189 pinnedEventsTimeline.unpinEventLambda = successUnpinEventLambda
186190 filledState.eventSink(PinnedMessagesListEvents .HandleAction (TimelineItemAction .Unpin , eventItem))
191+ advanceUntilIdle()
187192
188193 pinnedEventsTimeline.unpinEventLambda = failureUnpinEventLambda
189194 filledState.eventSink(PinnedMessagesListEvents .HandleAction (TimelineItemAction .Unpin , eventItem))
195+ advanceUntilIdle()
190196
191197 cancelAndIgnoreRemainingEvents()
192198
@@ -221,6 +227,7 @@ class PinnedMessagesListPresenterTest {
221227 val filledState = awaitItem() as PinnedMessagesListState .Filled
222228 val eventItem = filledState.timelineItems.first() as TimelineItem .Event
223229 filledState.eventSink(PinnedMessagesListEvents .HandleAction (TimelineItemAction .ViewInTimeline , eventItem))
230+ advanceUntilIdle()
224231 cancelAndIgnoreRemainingEvents()
225232 assert (onViewInTimelineClickLambda)
226233 .isCalledOnce()
@@ -249,6 +256,7 @@ class PinnedMessagesListPresenterTest {
249256 val filledState = awaitItem() as PinnedMessagesListState .Filled
250257 val eventItem = filledState.timelineItems.first() as TimelineItem .Event
251258 filledState.eventSink(PinnedMessagesListEvents .HandleAction (TimelineItemAction .ViewSource , eventItem))
259+ advanceUntilIdle()
252260 cancelAndIgnoreRemainingEvents()
253261 assert (onShowEventDebugInfoClickLambda)
254262 .isCalledOnce()
@@ -277,6 +285,7 @@ class PinnedMessagesListPresenterTest {
277285 val filledState = awaitItem() as PinnedMessagesListState .Filled
278286 val eventItem = filledState.timelineItems.first() as TimelineItem .Event
279287 filledState.eventSink(PinnedMessagesListEvents .HandleAction (TimelineItemAction .Forward , eventItem))
288+ advanceUntilIdle()
280289 cancelAndIgnoreRemainingEvents()
281290 assert (onForwardEventClickLambda)
282291 .isCalledOnce()
@@ -322,6 +331,7 @@ class PinnedMessagesListPresenterTest {
322331 timelineProvider = timelineProvider,
323332 snackbarDispatcher = SnackbarDispatcher (),
324333 actionListPresenterFactory = FakeActionListPresenter .Factory ,
334+ appCoroutineScope = this ,
325335 )
326336 }
327337}
0 commit comments