From 4f014fcde26bae70cd5441642c35e35e38670653 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Thu, 6 Jul 2023 16:22:49 +0100 Subject: [PATCH] Add test for leaving rooms Completely unrelated to what I was doing, but might appease the code coverage gods? --- .../roomdetails/RoomDetailsPresenterTests.kt | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTests.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTests.kt index 60e8d248b5..ccd1476c3a 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTests.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/RoomDetailsPresenterTests.kt @@ -20,7 +20,10 @@ import app.cash.molecule.RecompositionClock import app.cash.molecule.moleculeFlow import app.cash.turbine.test import com.google.common.truth.Truth.assertThat +import io.element.android.features.leaveroom.api.LeaveRoomEvent +import io.element.android.features.leaveroom.api.LeaveRoomPresenter import io.element.android.features.leaveroom.fake.LeaveRoomPresenterFake +import io.element.android.features.roomdetails.impl.RoomDetailsEvent import io.element.android.features.roomdetails.impl.RoomDetailsPresenter import io.element.android.features.roomdetails.impl.RoomDetailsType import io.element.android.features.roomdetails.impl.RoomTopicState @@ -44,13 +47,13 @@ import org.junit.Test @ExperimentalCoroutinesApi class RoomDetailsPresenterTests { - private fun aRoomDetailsPresenter(room: MatrixRoom): RoomDetailsPresenter { + private fun aRoomDetailsPresenter(room: MatrixRoom, leaveRoomPresenter: LeaveRoomPresenter = LeaveRoomPresenterFake()): RoomDetailsPresenter { val roomMemberDetailsPresenterFactory = object : RoomMemberDetailsPresenter.Factory { override fun create(roomMemberId: UserId): RoomMemberDetailsPresenter { return RoomMemberDetailsPresenter(FakeMatrixClient(), room, roomMemberId) } } - return RoomDetailsPresenter(room, roomMemberDetailsPresenterFactory, LeaveRoomPresenterFake()) + return RoomDetailsPresenter(room, roomMemberDetailsPresenterFactory, leaveRoomPresenter) } @Test @@ -305,6 +308,22 @@ class RoomDetailsPresenterTests { cancelAndIgnoreRemainingEvents() } } + + @Test + fun `present - leave room event is passed on to leave room presenter`() = runTest { + val leaveRoomPresenter = LeaveRoomPresenterFake() + val room = aMatrixRoom() + val presenter = aRoomDetailsPresenter(room, leaveRoomPresenter) + moleculeFlow(RecompositionClock.Immediate) { + presenter.present() + }.test { + awaitItem().eventSink(RoomDetailsEvent.LeaveRoom) + + assertThat(leaveRoomPresenter.events).contains(LeaveRoomEvent.ShowConfirmation(room.roomId)) + + cancelAndIgnoreRemainingEvents() + } + } } fun aMatrixRoom(