@ -42,6 +42,7 @@ import io.element.android.libraries.matrix.api.room.MatrixRoom
@@ -42,6 +42,7 @@ import io.element.android.libraries.matrix.api.room.MatrixRoom
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.test.AN_EVENT_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.test.A_USER_ID_2
import io.element.android.libraries.matrix.test.FakeMatrixClient
@ -81,6 +82,7 @@ class RoomDetailsPresenterTest {
@@ -81,6 +82,7 @@ class RoomDetailsPresenterTest {
dispatchers : CoroutineDispatchers = testCoroutineDispatchers ( ) ,
notificationSettingsService : FakeNotificationSettingsService = FakeNotificationSettingsService ( ) ,
analyticsService : AnalyticsService = FakeAnalyticsService ( ) ,
isPinnedMessagesFeatureEnabled : Boolean = true ,
) : RoomDetailsPresenter {
val matrixClient = FakeMatrixClient ( notificationSettingsService = notificationSettingsService )
val roomMemberDetailsPresenterFactory = object : RoomMemberDetailsPresenter . Factory {
@ -99,6 +101,7 @@ class RoomDetailsPresenterTest {
@@ -99,6 +101,7 @@ class RoomDetailsPresenterTest {
roomMembersDetailsPresenterFactory = roomMemberDetailsPresenterFactory ,
leaveRoomPresenter = leaveRoomPresenter ,
dispatchers = dispatchers ,
isPinnedMessagesFeatureEnabled = { isPinnedMessagesFeatureEnabled } ,
analyticsService = analyticsService ,
)
}
@ -127,14 +130,15 @@ class RoomDetailsPresenterTest {
@@ -127,14 +130,15 @@ class RoomDetailsPresenterTest {
assertThat ( initialState . roomTopic ) . isEqualTo ( RoomTopicState . ExistingTopic ( room . topic !! ) )
assertThat ( initialState . memberCount ) . isEqualTo ( room . joinedMemberCount )
assertThat ( initialState . isEncrypted ) . isEqualTo ( room . isEncrypted )
assertThat ( initialState . canShowPinnedMessages ) . isTrue ( )
assertThat ( initialState . pinnedMessagesCount ) . isNull ( )
cancelAndIgnoreRemainingEvents ( )
}
}
@Test
fun `present - initial state is updated with roomInfo if it exists` ( ) = runTest {
val roomInfo = aRoomInfo ( name = " A room name " , topic = " A topic " , avatarUrl = " https://matrix.org/avatar.jpg " )
val roomInfo = aRoomInfo ( name = " A room name " , topic = " A topic " , avatarUrl = " https://matrix.org/avatar.jpg " , pinnedEventIds = listOf ( AN _EVENT _ID ) )
val room = aMatrixRoom (
canInviteResult = { Result . success ( true ) } ,
canUserJoinCallResult = { Result . success ( true ) } ,
@ -149,7 +153,7 @@ class RoomDetailsPresenterTest {
@@ -149,7 +153,7 @@ class RoomDetailsPresenterTest {
assertThat ( updatedState . roomName ) . isEqualTo ( roomInfo . name )
assertThat ( updatedState . roomAvatarUrl ) . isEqualTo ( roomInfo . avatarUrl )
assertThat ( updatedState . roomTopic ) . isEqualTo ( RoomTopicState . ExistingTopic ( roomInfo . topic !! ) )
assertThat ( updatedState . pinnedMessagesCount ) . isEqualTo ( roomInfo . pinnedEventIds . size )
cancelAndIgnoreRemainingEvents ( )
}
}