diff --git a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt index a0b5b5f6ae..5f69cd0df6 100644 --- a/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt +++ b/features/joinroom/impl/src/main/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenter.kt @@ -256,7 +256,7 @@ internal fun MatrixRoomInfo.toContentState(): ContentState { name = name, topic = topic, alias = canonicalAlias, - numberOfMembers = activeMembersCount, + numberOfMembers = joinedMembersCount, isDm = isDm, roomType = if (isSpace) RoomType.Space else RoomType.Room, roomAvatarUrl = avatarUrl, diff --git a/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt b/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt index 2d615ff034..0a19155bdc 100644 --- a/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt +++ b/features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt @@ -91,7 +91,7 @@ class JoinRoomPresenterTest { assertThat(contentState.name).isEqualTo(roomSummary.info.name) assertThat(contentState.topic).isEqualTo(roomSummary.info.topic) assertThat(contentState.alias).isEqualTo(roomSummary.info.canonicalAlias) - assertThat(contentState.numberOfMembers).isEqualTo(roomSummary.info.activeMembersCount) + assertThat(contentState.numberOfMembers).isEqualTo(roomSummary.info.joinedMembersCount) assertThat(contentState.isDm).isEqualTo(roomSummary.info.isDirect) assertThat(contentState.roomAvatarUrl).isEqualTo(roomSummary.info.avatarUrl) } @@ -545,7 +545,7 @@ class JoinRoomPresenterTest { } @Test - fun `present - when room is not known RoomPreview is loaded as Private `() = runTest { + fun `present - when room is not known RoomPreview is loaded as Private`() = runTest { val client = FakeMatrixClient( getRoomPreviewInfoResult = { _, _ -> Result.success( @@ -565,7 +565,47 @@ class JoinRoomPresenterTest { } @Test - fun `present - when room is not known RoomPreview is loaded as KnockRestricted `() = runTest { + fun `present - when room is not known RoomPreview is loaded as Custom`() = runTest { + val client = FakeMatrixClient( + getRoomPreviewInfoResult = { _, _ -> + Result.success( + aRoomPreviewInfo(joinRule = JoinRule.Custom("custom")) + ) + } + ) + val presenter = createJoinRoomPresenter( + matrixClient = client + ) + presenter.test { + skipItems(1) + awaitItem().also { state -> + assertThat(state.joinAuthorisationStatus).isEqualTo(JoinAuthorisationStatus.Unknown) + } + } + } + + @Test + fun `present - when room is not known RoomPreview is loaded as Invite`() = runTest { + val client = FakeMatrixClient( + getRoomPreviewInfoResult = { _, _ -> + Result.success( + aRoomPreviewInfo(joinRule = JoinRule.Invite) + ) + } + ) + val presenter = createJoinRoomPresenter( + matrixClient = client + ) + presenter.test { + skipItems(1) + awaitItem().also { state -> + assertThat(state.joinAuthorisationStatus).isEqualTo(JoinAuthorisationStatus.NeedInvite) + } + } + } + + @Test + fun `present - when room is not known RoomPreview is loaded as KnockRestricted`() = runTest { val client = FakeMatrixClient( getRoomPreviewInfoResult = { _, _ -> Result.success( @@ -585,7 +625,7 @@ class JoinRoomPresenterTest { } @Test - fun `present - when room is not known RoomPreview is loaded as Restricted `() = runTest { + fun `present - when room is not known RoomPreview is loaded as Restricted`() = runTest { val client = FakeMatrixClient( getRoomPreviewInfoResult = { _, _ -> Result.success( @@ -605,7 +645,7 @@ class JoinRoomPresenterTest { } @Test - fun `present - when room is not known RoomPreview is loaded as Space `() = runTest { + fun `present - when room is not known RoomPreview is loaded as Space`() = runTest { val client = FakeMatrixClient( getRoomPreviewInfoResult = { _, _ -> Result.success( diff --git a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomInfoFixture.kt b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomInfoFixture.kt index 7711854a81..50a4c30a85 100644 --- a/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomInfoFixture.kt +++ b/libraries/matrix/test/src/main/kotlin/io/element/android/libraries/matrix/test/room/RoomInfoFixture.kt @@ -42,8 +42,8 @@ fun aRoomInfo( alternativeAliases: List = emptyList(), currentUserMembership: CurrentUserMembership = CurrentUserMembership.JOINED, inviter: RoomMember? = null, - activeMembersCount: Long = 1, - invitedMembersCount: Long = 0, + activeMembersCount: Long = 2, + invitedMembersCount: Long = 1, joinedMembersCount: Long = 1, highlightCount: Long = 0, notificationCount: Long = 0,