From f2dfa3dc91908f125a92d978bb6d7a745dae9fc5 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 27 Jan 2026 14:59:23 +0100 Subject: [PATCH] Use presenter test extension. --- .../details/RoomMemberDetailsPresenterTest.kt | 19 ++------- .../RoomNotificationSettingsPresenterTest.kt | 40 +++++-------------- 2 files changed, 14 insertions(+), 45 deletions(-) diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/details/RoomMemberDetailsPresenterTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/details/RoomMemberDetailsPresenterTest.kt index 4dbf21c392..34ac8d623f 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/details/RoomMemberDetailsPresenterTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/members/details/RoomMemberDetailsPresenterTest.kt @@ -8,9 +8,6 @@ package io.element.android.features.roomdetails.impl.members.details -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.roomdetails.impl.aJoinedRoom import io.element.android.features.roomdetails.impl.members.aRoomMember @@ -89,9 +86,7 @@ class RoomMemberDetailsPresenterTest { val presenter = createRoomMemberDetailsPresenter( room = room, ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() assertThat(initialState.userName).isEqualTo("Alice") assertThat(initialState.avatarUrl).isEqualTo("Alice Avatar url") @@ -111,9 +106,7 @@ class RoomMemberDetailsPresenterTest { val presenter = createRoomMemberDetailsPresenter( room = room, ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() assertThat(initialState.userName).isEqualTo("Alice") assertThat(initialState.avatarUrl).isEqualTo("Profile avatar url") @@ -130,9 +123,7 @@ class RoomMemberDetailsPresenterTest { val presenter = createRoomMemberDetailsPresenter( room = room, ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() assertThat(initialState.userName).isEqualTo("Profile user name") assertThat(initialState.avatarUrl).isEqualTo("Profile avatar url") @@ -161,9 +152,7 @@ class RoomMemberDetailsPresenterTest { } }, ) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() assertThat(initialState.userName).isNull() assertThat(initialState.avatarUrl).isNull() diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/notificationsettings/RoomNotificationSettingsPresenterTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/notificationsettings/RoomNotificationSettingsPresenterTest.kt index f583d24078..9f20aec0fd 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/notificationsettings/RoomNotificationSettingsPresenterTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/notificationsettings/RoomNotificationSettingsPresenterTest.kt @@ -8,9 +8,6 @@ package io.element.android.features.roomdetails.impl.notificationsettings -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.roomdetails.impl.aJoinedRoom import io.element.android.libraries.matrix.api.room.RoomNotificationMode @@ -20,6 +17,7 @@ import io.element.android.libraries.matrix.test.notificationsettings.FakeNotific import io.element.android.libraries.matrix.test.room.FakeJoinedRoom import io.element.android.tests.testutils.awaitLastSequentialItem import io.element.android.tests.testutils.consumeItemsUntilPredicate +import io.element.android.tests.testutils.test import kotlinx.coroutines.test.runTest import org.junit.Test @@ -27,9 +25,7 @@ class RoomNotificationSettingsPresenterTest { @Test fun `present - initial state is created from room info`() = runTest { val presenter = createRoomNotificationSettingsPresenter() - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() assertThat(initialState.roomNotificationSettings.dataOrNull()).isNull() assertThat(initialState.defaultRoomNotificationMode).isNull() @@ -42,9 +38,7 @@ class RoomNotificationSettingsPresenterTest { @Test fun `present - notification mode changed`() = runTest { val presenter = createRoomNotificationSettingsPresenter() - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { awaitItem().eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)) val updatedState = consumeItemsUntilPredicate { it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY @@ -58,9 +52,7 @@ class RoomNotificationSettingsPresenterTest { fun `present - observe notification mode changed`() = runTest { val notificationSettingsService = FakeNotificationSettingsService() val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { notificationSettingsService.setRoomNotificationMode(A_ROOM_ID, RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY) val updatedState = consumeItemsUntilPredicate { it.roomNotificationSettings.dataOrNull()?.mode == RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY @@ -74,9 +66,7 @@ class RoomNotificationSettingsPresenterTest { val notificationSettingsService = FakeNotificationSettingsService() notificationSettingsService.givenSetNotificationModeError(AN_EXCEPTION) val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(false)) val failedState = consumeItemsUntilPredicate { @@ -100,9 +90,7 @@ class RoomNotificationSettingsPresenterTest { fun `present - notification settings set custom`() = runTest { val notificationSettingsService = FakeNotificationSettingsService() val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(false)) skipItems(3) @@ -115,9 +103,7 @@ class RoomNotificationSettingsPresenterTest { @Test fun `present - notification settings restore default`() = runTest { val presenter = createRoomNotificationSettingsPresenter() - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() initialState.eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)) initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(true)) @@ -134,9 +120,7 @@ class RoomNotificationSettingsPresenterTest { val notificationSettingsService = FakeNotificationSettingsService() notificationSettingsService.givenRestoreDefaultNotificationModeError(AN_EXCEPTION) val presenter = createRoomNotificationSettingsPresenter(notificationSettingsService) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { val initialState = awaitItem() initialState.eventSink(RoomNotificationSettingsEvent.ChangeRoomNotificationMode(RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY)) initialState.eventSink(RoomNotificationSettingsEvent.SetNotificationMode(true)) @@ -161,9 +145,7 @@ class RoomNotificationSettingsPresenterTest { } val room = aJoinedRoom(notificationSettingsService = notificationService, isEncrypted = true) val presenter = createRoomNotificationSettingsPresenter(notificationService, room) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { assertThat(awaitLastSequentialItem().displayMentionsOnlyDisclaimer).isTrue() } } @@ -175,9 +157,7 @@ class RoomNotificationSettingsPresenterTest { } val room = aJoinedRoom(notificationSettingsService = notificationService, isEncrypted = false) val presenter = createRoomNotificationSettingsPresenter(notificationService, room) - moleculeFlow(RecompositionMode.Immediate) { - presenter.present() - }.test { + presenter.test { assertThat(awaitLastSequentialItem().displayMentionsOnlyDisclaimer).isFalse() } }