|
|
|
@ -26,8 +26,6 @@ import io.element.android.features.createroom.test.FakeStartDMAction
@@ -26,8 +26,6 @@ import io.element.android.features.createroom.test.FakeStartDMAction
|
|
|
|
|
import io.element.android.features.leaveroom.api.LeaveRoomEvent |
|
|
|
|
import io.element.android.features.leaveroom.api.LeaveRoomPresenter |
|
|
|
|
import io.element.android.features.leaveroom.fake.FakeLeaveRoomPresenter |
|
|
|
|
import io.element.android.features.roomactions.api.SetRoomIsFavoriteAction |
|
|
|
|
import io.element.android.features.roomactions.test.FakeSetRoomIsFavoriteAction |
|
|
|
|
import io.element.android.features.roomdetails.impl.RoomDetailsEvent |
|
|
|
|
import io.element.android.features.roomdetails.impl.RoomDetailsPresenter |
|
|
|
|
import io.element.android.features.roomdetails.impl.RoomDetailsState |
|
|
|
@ -41,10 +39,10 @@ import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
@@ -41,10 +39,10 @@ import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
|
|
|
|
import io.element.android.libraries.matrix.api.core.RoomId |
|
|
|
|
import io.element.android.libraries.matrix.api.core.UserId |
|
|
|
|
import io.element.android.libraries.matrix.api.room.MatrixRoom |
|
|
|
|
import io.element.android.libraries.matrix.api.room.MatrixRoomInfo |
|
|
|
|
import io.element.android.libraries.matrix.api.room.MatrixRoomMembersState |
|
|
|
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode |
|
|
|
|
import io.element.android.libraries.matrix.api.room.StateEventType |
|
|
|
|
import io.element.android.libraries.matrix.api.room.tags.RoomNotableTags |
|
|
|
|
import io.element.android.libraries.matrix.test.A_ROOM_ID |
|
|
|
|
import io.element.android.libraries.matrix.test.A_ROOM_NAME |
|
|
|
|
import io.element.android.libraries.matrix.test.A_SESSION_ID |
|
|
|
@ -80,7 +78,6 @@ class RoomDetailsPresenterTests {
@@ -80,7 +78,6 @@ class RoomDetailsPresenterTests {
|
|
|
|
|
leaveRoomPresenter: LeaveRoomPresenter = FakeLeaveRoomPresenter(), |
|
|
|
|
dispatchers: CoroutineDispatchers = testCoroutineDispatchers(), |
|
|
|
|
notificationSettingsService: FakeNotificationSettingsService = FakeNotificationSettingsService(), |
|
|
|
|
setRoomIsFavoriteAction: SetRoomIsFavoriteAction = FakeSetRoomIsFavoriteAction(), |
|
|
|
|
): RoomDetailsPresenter { |
|
|
|
|
val matrixClient = FakeMatrixClient(notificationSettingsService = notificationSettingsService) |
|
|
|
|
val roomMemberDetailsPresenterFactory = object : RoomMemberDetailsPresenter.Factory { |
|
|
|
@ -99,7 +96,6 @@ class RoomDetailsPresenterTests {
@@ -99,7 +96,6 @@ class RoomDetailsPresenterTests {
|
|
|
|
|
roomMembersDetailsPresenterFactory = roomMemberDetailsPresenterFactory, |
|
|
|
|
leaveRoomPresenter = leaveRoomPresenter, |
|
|
|
|
dispatchers = dispatchers, |
|
|
|
|
setRoomIsFavorite = setRoomIsFavoriteAction, |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -439,26 +435,28 @@ class RoomDetailsPresenterTests {
@@ -439,26 +435,28 @@ class RoomDetailsPresenterTests {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `present - when set is favorite event is emitted, then the action is called`() = runTest { |
|
|
|
|
val setRoomIsFavoriteAction = FakeSetRoomIsFavoriteAction() |
|
|
|
|
val presenter = createRoomDetailsPresenter(setRoomIsFavoriteAction = setRoomIsFavoriteAction) |
|
|
|
|
val room = FakeMatrixRoom() |
|
|
|
|
val presenter = createRoomDetailsPresenter(room = room) |
|
|
|
|
presenter.test { |
|
|
|
|
val initialState = awaitItem() |
|
|
|
|
initialState.eventSink(RoomDetailsEvent.SetIsFavorite(true)) |
|
|
|
|
setRoomIsFavoriteAction.assertCalled(1) |
|
|
|
|
assertThat(room.setIsFavoriteCalls).isEqualTo(listOf(true)) |
|
|
|
|
initialState.eventSink(RoomDetailsEvent.SetIsFavorite(false)) |
|
|
|
|
assertThat(room.setIsFavoriteCalls).isEqualTo(listOf(true, false)) |
|
|
|
|
cancelAndIgnoreRemainingEvents() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
fun `present - changes in notable tags updates is favorite flag`() = runTest { |
|
|
|
|
fun `present - changes in room info updates the is favorite flag`() = runTest { |
|
|
|
|
val room = aMatrixRoom() |
|
|
|
|
val presenter = createRoomDetailsPresenter(room = room) |
|
|
|
|
presenter.test { |
|
|
|
|
room.updateNotableTags(RoomNotableTags(true)) |
|
|
|
|
room.givenRoomInfo(aRoomInfo(isFavorite = true)) |
|
|
|
|
consumeItemsUntilPredicate { it.isFavorite }.last().let { state -> |
|
|
|
|
assertThat(state.isFavorite).isTrue() |
|
|
|
|
} |
|
|
|
|
room.updateNotableTags(RoomNotableTags(false)) |
|
|
|
|
room.givenRoomInfo(aRoomInfo(isFavorite = false)) |
|
|
|
|
consumeItemsUntilPredicate { !it.isFavorite }.last().let { state -> |
|
|
|
|
assertThat(state.isFavorite).isFalse() |
|
|
|
|
} |
|
|
|
|