mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Add test for leaving rooms
Completely unrelated to what I was doing, but might appease the code coverage gods?
This commit is contained in:
+21
-2
@@ -20,7 +20,10 @@ import app.cash.molecule.RecompositionClock
|
|||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
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.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.RoomDetailsPresenter
|
||||||
import io.element.android.features.roomdetails.impl.RoomDetailsType
|
import io.element.android.features.roomdetails.impl.RoomDetailsType
|
||||||
import io.element.android.features.roomdetails.impl.RoomTopicState
|
import io.element.android.features.roomdetails.impl.RoomTopicState
|
||||||
@@ -44,13 +47,13 @@ import org.junit.Test
|
|||||||
@ExperimentalCoroutinesApi
|
@ExperimentalCoroutinesApi
|
||||||
class RoomDetailsPresenterTests {
|
class RoomDetailsPresenterTests {
|
||||||
|
|
||||||
private fun aRoomDetailsPresenter(room: MatrixRoom): RoomDetailsPresenter {
|
private fun aRoomDetailsPresenter(room: MatrixRoom, leaveRoomPresenter: LeaveRoomPresenter = LeaveRoomPresenterFake()): RoomDetailsPresenter {
|
||||||
val roomMemberDetailsPresenterFactory = object : RoomMemberDetailsPresenter.Factory {
|
val roomMemberDetailsPresenterFactory = object : RoomMemberDetailsPresenter.Factory {
|
||||||
override fun create(roomMemberId: UserId): RoomMemberDetailsPresenter {
|
override fun create(roomMemberId: UserId): RoomMemberDetailsPresenter {
|
||||||
return RoomMemberDetailsPresenter(FakeMatrixClient(), room, roomMemberId)
|
return RoomMemberDetailsPresenter(FakeMatrixClient(), room, roomMemberId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return RoomDetailsPresenter(room, roomMemberDetailsPresenterFactory, LeaveRoomPresenterFake())
|
return RoomDetailsPresenter(room, roomMemberDetailsPresenterFactory, leaveRoomPresenter)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -305,6 +308,22 @@ class RoomDetailsPresenterTests {
|
|||||||
cancelAndIgnoreRemainingEvents()
|
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(
|
fun aMatrixRoom(
|
||||||
|
|||||||
Reference in New Issue
Block a user