From f184562d8fefe6ff95845f9775ace62c9c22215c Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 27 Jan 2026 09:35:51 +0100 Subject: [PATCH] Use presenter test extension. --- .../actionlist/ActionListPresenterTest.kt | 127 +++++------------- 1 file changed, 31 insertions(+), 96 deletions(-) diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt index a07c09998f..7a99ad39aa 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt @@ -8,9 +8,6 @@ package io.element.android.features.messages.impl.actionlist -import app.cash.molecule.RecompositionMode -import app.cash.molecule.moleculeFlow -import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.features.messages.impl.aUserEventPermissions import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction @@ -62,9 +59,7 @@ class ActionListPresenterTest { @Test fun `present - initial state`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() assertThat(initialState.target).isEqualTo(ActionListState.Target.None) } @@ -73,9 +68,7 @@ class ActionListPresenterTest { @Test fun `present - compute for message from me redacted`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent(isMine = true, isEditable = false, content = TimelineItemRedactedContent) initialState.eventSink.invoke( @@ -111,9 +104,7 @@ class ActionListPresenterTest { @Test fun `present - compute for message from others redacted`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = false, @@ -153,9 +144,7 @@ class ActionListPresenterTest { @Test fun `present - compute for others message`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = false, @@ -248,9 +237,7 @@ class ActionListPresenterTest { @Test fun `present - compute for others message cannot sent message`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = false, @@ -295,9 +282,7 @@ class ActionListPresenterTest { @Test fun `present - compute for others message and can redact`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = false, @@ -344,9 +329,7 @@ class ActionListPresenterTest { @Test fun `present - compute for others message and cannot send reaction`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = false, @@ -393,9 +376,7 @@ class ActionListPresenterTest { @Test fun `present - compute for my message`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -488,9 +469,7 @@ class ActionListPresenterTest { @Test fun `present - compute for my message cannot redact`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -535,9 +514,7 @@ class ActionListPresenterTest { @Test fun `present - compute for my message no permission`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -579,9 +556,7 @@ class ActionListPresenterTest { @Test fun `present - compute for a media item`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -627,9 +602,7 @@ class ActionListPresenterTest { @Test fun `present - compute for a media with caption item`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -679,9 +652,7 @@ class ActionListPresenterTest { @Test fun `present - compute for a media with caption item - other user event`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = false, @@ -729,9 +700,7 @@ class ActionListPresenterTest { @Test fun `present - compute for a state item in debug build`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val stateEvent = aTimelineItemEvent( isMine = true, @@ -770,9 +739,7 @@ class ActionListPresenterTest { @Test fun `present - compute for a state item in non-debuggable build`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = false) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val stateEvent = aTimelineItemEvent( isMine = true, @@ -797,9 +764,7 @@ class ActionListPresenterTest { @Test fun `present - compute message in non-debuggable build`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = false) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -844,9 +809,7 @@ class ActionListPresenterTest { @Test fun `present - compute message when user can't pin`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -897,9 +860,7 @@ class ActionListPresenterTest { isDeveloperModeEnabled = true, room = room ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -945,9 +906,7 @@ class ActionListPresenterTest { @Test fun `present - compute message with no actions`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = false) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -992,9 +951,7 @@ class ActionListPresenterTest { @Test fun `present - compute not sent message`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = false) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( // No event id, so it's not sent yet @@ -1037,9 +994,7 @@ class ActionListPresenterTest { @Test fun `present - compute for editable poll message`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = false) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -1082,9 +1037,7 @@ class ActionListPresenterTest { @Test fun `present - compute for non-editable poll message`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = false) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -1126,9 +1079,7 @@ class ActionListPresenterTest { @Test fun `present - compute for ended poll message`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = false) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -1169,9 +1120,7 @@ class ActionListPresenterTest { @Test fun `present - compute for voice message`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = false) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -1215,9 +1164,7 @@ class ActionListPresenterTest { @Test fun `present - compute for call notify`() = runTest { val presenter = createActionListPresenter(isDeveloperModeEnabled = true) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -1256,9 +1203,7 @@ class ActionListPresenterTest { userDisplayNameResult = { Result.success("Alice") } ) val presenter = createActionListPresenter(isDeveloperModeEnabled = false, room = room) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( sendState = LocalEventSendState.Failed.VerifiedUserChangedIdentity(users = listOf(A_USER_ID)), @@ -1283,9 +1228,7 @@ class ActionListPresenterTest { timelineMode = Timeline.Mode.Thread(A_THREAD_ID), featureFlagService = FakeFeatureFlagService(initialState = mapOf(FeatureFlags.Threads.key to true)), ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( isMine = true, @@ -1334,9 +1277,7 @@ class ActionListPresenterTest { isDeveloperModeEnabled = false, featureFlagService = FakeFeatureFlagService(initialState = mapOf(FeatureFlags.Threads.key to true)), ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( eventId = AN_EVENT_ID, @@ -1388,9 +1329,7 @@ class ActionListPresenterTest { isDeveloperModeEnabled = false, featureFlagService = FakeFeatureFlagService(initialState = mapOf(FeatureFlags.Threads.key to true)), ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( eventId = AN_EVENT_ID, @@ -1443,9 +1382,7 @@ class ActionListPresenterTest { isDeveloperModeEnabled = false, featureFlagService = FakeFeatureFlagService(initialState = mapOf(FeatureFlags.Threads.key to true)), ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( eventId = null, @@ -1498,9 +1435,7 @@ class ActionListPresenterTest { isDeveloperModeEnabled = false, recentEmojis = GetRecentEmojis { Result.success((listOf("👍️", ":)", "❤️") + otherEmojis).toImmutableList()) }, ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() val messageEvent = aMessageEvent( eventId = null,