Skip to content

Commit 792bc25

Browse files
committed
Remove FakeLeaveRoomPresenter
1 parent 25e5fde commit 792bc25

File tree

7 files changed

+18
-83
lines changed

7 files changed

+18
-83
lines changed

features/leaveroom/api/src/main/kotlin/io/element/android/features/leaveroom/api/LeaveRoomStateProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,10 @@ fun aLeaveRoomState(
5757
confirmation: LeaveRoomState.Confirmation = LeaveRoomState.Confirmation.Hidden,
5858
progress: LeaveRoomState.Progress = LeaveRoomState.Progress.Hidden,
5959
error: LeaveRoomState.Error = LeaveRoomState.Error.Hidden,
60+
eventSink: (LeaveRoomEvent) -> Unit = {},
6061
) = LeaveRoomState(
6162
confirmation = confirmation,
6263
progress = progress,
6364
error = error,
64-
eventSink = {},
65+
eventSink = eventSink,
6566
)

features/leaveroom/test/build.gradle.kts

Lines changed: 0 additions & 21 deletions
This file was deleted.

features/leaveroom/test/src/main/kotlin/io/element/android/features/leaveroom/fake/FakeLeaveRoomPresenter.kt

Lines changed: 0 additions & 38 deletions
This file was deleted.

features/roomdetails/impl/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ dependencies {
6464
testImplementation(projects.libraries.usersearch.test)
6565
testImplementation(projects.libraries.featureflag.test)
6666
testImplementation(projects.tests.testutils)
67-
testImplementation(projects.features.leaveroom.test)
6867
testImplementation(projects.features.createroom.test)
6968
testImplementation(projects.services.analytics.test)
7069
testImplementation(libs.androidx.compose.ui.test.junit)

features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTest.kt

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,14 @@ import im.vector.app.features.analytics.plan.Interaction
1717
import io.element.android.features.createroom.test.FakeStartDMAction
1818
import io.element.android.features.leaveroom.api.LeaveRoomEvent
1919
import io.element.android.features.leaveroom.api.LeaveRoomState
20-
import io.element.android.features.leaveroom.fake.FakeLeaveRoomPresenter
20+
import io.element.android.features.leaveroom.api.aLeaveRoomState
2121
import io.element.android.features.roomdetails.impl.RoomDetailsEvent
2222
import io.element.android.features.roomdetails.impl.RoomDetailsPresenter
2323
import io.element.android.features.roomdetails.impl.RoomDetailsState
2424
import io.element.android.features.roomdetails.impl.RoomDetailsType
2525
import io.element.android.features.roomdetails.impl.RoomTopicState
2626
import io.element.android.features.roomdetails.impl.members.aRoomMember
2727
import io.element.android.features.roomdetails.impl.members.details.RoomMemberDetailsPresenter
28-
import io.element.android.libraries.architecture.Presenter
2928
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
3029
import io.element.android.libraries.featureflag.api.FeatureFlags
3130
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
@@ -46,6 +45,7 @@ import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
4645
import io.element.android.libraries.matrix.test.room.aRoomInfo
4746
import io.element.android.services.analytics.api.AnalyticsService
4847
import io.element.android.services.analytics.test.FakeAnalyticsService
48+
import io.element.android.tests.testutils.EventsRecorder
4949
import io.element.android.tests.testutils.FakeLifecycleOwner
5050
import io.element.android.tests.testutils.WarmUpRule
5151
import io.element.android.tests.testutils.consumeItemsUntilPredicate
@@ -73,7 +73,7 @@ class RoomDetailsPresenterTest {
7373

7474
private fun TestScope.createRoomDetailsPresenter(
7575
room: MatrixRoom = aMatrixRoom(),
76-
leaveRoomPresenter: Presenter<LeaveRoomState> = FakeLeaveRoomPresenter(),
76+
leaveRoomState: LeaveRoomState = aLeaveRoomState(),
7777
dispatchers: CoroutineDispatchers = testCoroutineDispatchers(),
7878
notificationSettingsService: FakeNotificationSettingsService = FakeNotificationSettingsService(),
7979
analyticsService: AnalyticsService = FakeAnalyticsService(),
@@ -94,7 +94,7 @@ class RoomDetailsPresenterTest {
9494
featureFlagService = featureFlagService,
9595
notificationSettingsService = matrixClient.notificationSettingsService(),
9696
roomMembersDetailsPresenterFactory = roomMemberDetailsPresenterFactory,
97-
leaveRoomPresenter = leaveRoomPresenter,
97+
leaveRoomPresenter = { leaveRoomState },
9898
dispatchers = dispatchers,
9999
isPinnedMessagesFeatureEnabled = { isPinnedMessagesFeatureEnabled },
100100
analyticsService = analyticsService,
@@ -476,33 +476,26 @@ class RoomDetailsPresenterTest {
476476

477477
@Test
478478
fun `present - leave room event is passed on to leave room presenter`() = runTest {
479-
val leaveRoomPresenter = FakeLeaveRoomPresenter()
479+
val leaveRoomEventRecorder = EventsRecorder<LeaveRoomEvent>()
480480
val room = aMatrixRoom(
481481
canInviteResult = { Result.success(true) },
482482
canUserJoinCallResult = { Result.success(true) },
483483
canSendStateResult = { _, _ -> Result.success(true) },
484484
)
485485
val presenter = createRoomDetailsPresenter(
486486
room = room,
487-
leaveRoomPresenter = leaveRoomPresenter,
487+
leaveRoomState = aLeaveRoomState(eventSink = leaveRoomEventRecorder),
488488
dispatchers = testCoroutineDispatchers()
489489
)
490490
presenter.test {
491491
awaitItem().eventSink(RoomDetailsEvent.LeaveRoom)
492-
493-
assertThat(leaveRoomPresenter.events).contains(
494-
LeaveRoomEvent.ShowConfirmation(
495-
room.roomId
496-
)
497-
)
498-
492+
leaveRoomEventRecorder.assertSingle(LeaveRoomEvent.ShowConfirmation(room.roomId))
499493
cancelAndIgnoreRemainingEvents()
500494
}
501495
}
502496

503497
@Test
504498
fun `present - notification mode changes`() = runTest {
505-
val leaveRoomPresenter = FakeLeaveRoomPresenter()
506499
val notificationSettingsService = FakeNotificationSettingsService()
507500
val room = aMatrixRoom(
508501
notificationSettingsService = notificationSettingsService,
@@ -512,7 +505,6 @@ class RoomDetailsPresenterTest {
512505
)
513506
val presenter = createRoomDetailsPresenter(
514507
room = room,
515-
leaveRoomPresenter = leaveRoomPresenter,
516508
notificationSettingsService = notificationSettingsService,
517509
)
518510
presenter.test {

features/roomlist/impl/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,4 @@ dependencies {
7474
testImplementation(projects.features.networkmonitor.test)
7575
testImplementation(projects.features.logout.test)
7676
testImplementation(projects.tests.testutils)
77-
testImplementation(projects.features.leaveroom.test)
7877
}

features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/RoomListPresenterTest.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import io.element.android.features.invite.api.response.AcceptDeclineInviteState
1717
import io.element.android.features.invite.api.response.anAcceptDeclineInviteState
1818
import io.element.android.features.leaveroom.api.LeaveRoomEvent
1919
import io.element.android.features.leaveroom.api.LeaveRoomState
20-
import io.element.android.features.leaveroom.fake.FakeLeaveRoomPresenter
20+
import io.element.android.features.leaveroom.api.aLeaveRoomState
2121
import io.element.android.features.logout.api.direct.aDirectLogoutState
2222
import io.element.android.features.networkmonitor.api.NetworkMonitor
2323
import io.element.android.features.networkmonitor.test.FakeNetworkMonitor
@@ -368,15 +368,18 @@ class RoomListPresenterTest {
368368

369369
@Test
370370
fun `present - leave room calls into leave room presenter`() = runTest {
371-
val leaveRoomPresenter = FakeLeaveRoomPresenter()
371+
val leaveRoomEventsRecorder = EventsRecorder<LeaveRoomEvent>()
372372
val scope = CoroutineScope(coroutineContext + SupervisorJob())
373-
val presenter = createRoomListPresenter(leaveRoomPresenter = leaveRoomPresenter, coroutineScope = scope)
373+
val presenter = createRoomListPresenter(
374+
leaveRoomState = aLeaveRoomState(eventSink = leaveRoomEventsRecorder),
375+
coroutineScope = scope,
376+
)
374377
moleculeFlow(RecompositionMode.Immediate) {
375378
presenter.present()
376379
}.test {
377380
val initialState = awaitItem()
378381
initialState.eventSink(RoomListEvents.LeaveRoom(A_ROOM_ID))
379-
assertThat(leaveRoomPresenter.events).containsExactly(LeaveRoomEvent.ShowConfirmation(A_ROOM_ID))
382+
leaveRoomEventsRecorder.assertSingle(LeaveRoomEvent.ShowConfirmation(A_ROOM_ID))
380383
cancelAndIgnoreRemainingEvents()
381384
scope.cancel()
382385
}
@@ -671,7 +674,7 @@ class RoomListPresenterTest {
671674
client: MatrixClient = FakeMatrixClient(),
672675
networkMonitor: NetworkMonitor = FakeNetworkMonitor(),
673676
snackbarDispatcher: SnackbarDispatcher = SnackbarDispatcher(),
674-
leaveRoomPresenter: Presenter<LeaveRoomState> = FakeLeaveRoomPresenter(),
677+
leaveRoomState: LeaveRoomState = aLeaveRoomState(),
675678
lastMessageTimestampFormatter: LastMessageTimestampFormatter = FakeLastMessageTimestampFormatter().apply {
676679
givenFormat(A_FORMATTED_DATE)
677680
},
@@ -688,7 +691,7 @@ class RoomListPresenterTest {
688691
client = client,
689692
networkMonitor = networkMonitor,
690693
snackbarDispatcher = snackbarDispatcher,
691-
leaveRoomPresenter = leaveRoomPresenter,
694+
leaveRoomPresenter = { leaveRoomState },
692695
roomListDataSource = RoomListDataSource(
693696
roomListService = client.roomListService,
694697
roomListRoomSummaryFactory = RoomListRoomSummaryFactory(

0 commit comments

Comments
 (0)