testing the switch from banned to members when there are no more banned members
This commit is contained in:
@@ -105,7 +105,7 @@ class RoomMembersListScreenViewModel: RoomMembersListScreenViewModelType, RoomMe
|
||||
self.currentUserProxy = members.first { $0.userID == roomProxy.ownUserID }
|
||||
|
||||
var newBindings = state.bindings
|
||||
if state.bindings.mode == .banned, roomMembersDetails.bannedMembers.count == 0 {
|
||||
if roomMembersDetails.bannedMembers.count == 0 {
|
||||
newBindings.mode = .members
|
||||
}
|
||||
self.state = .init(joinedMembersCount: roomProxy.infoPublisher.value.joinedMembersCount,
|
||||
|
||||
@@ -77,7 +77,7 @@ struct RoomMembersListScreen: View {
|
||||
})
|
||||
}
|
||||
}
|
||||
.background(.compound.bgCanvasDefault)
|
||||
.background(.compound.bgCanvasDefaultLevel1)
|
||||
.clipShape(sectionShape)
|
||||
.padding(.bottom, 32)
|
||||
} header: {
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
// Please see LICENSE files in the repository root for full details.
|
||||
//
|
||||
|
||||
import Combine
|
||||
import XCTest
|
||||
|
||||
@testable import ElementX
|
||||
@@ -273,6 +274,25 @@ class RoomMembersListScreenViewModelTests: XCTestCase {
|
||||
XCTAssertEqual(context.manageMemeberViewModel?.state.isMemberBanned, true)
|
||||
}
|
||||
|
||||
func testSwitchesToMembersModeWhenThereAreNoBannedMembers() async throws {
|
||||
// Given the room list viewed as an admin.
|
||||
roomProxy = JoinedRoomProxyMock(.init(name: "test"))
|
||||
let subject = CurrentValueSubject<[RoomMemberProxyProtocol], Never>([RoomMemberProxyMock].allMembersAsAdmin + RoomMemberProxyMock.mockBanned)
|
||||
roomProxy.membersPublisher = subject.asCurrentValuePublisher()
|
||||
viewModel = .init(userSession: UserSessionMock(.init()),
|
||||
roomProxy: roomProxy,
|
||||
userIndicatorController: ServiceLocator.shared.userIndicatorController,
|
||||
analytics: ServiceLocator.shared.analytics)
|
||||
|
||||
var deferred = deferFulfillment(context.$viewState) { $0.visibleBannedMembers.count == 4 && $0.bindings.mode == .banned }
|
||||
context.mode = .banned
|
||||
try await deferred.fulfill()
|
||||
|
||||
deferred = deferFulfillment(context.$viewState) { $0.visibleBannedMembers.count == 0 && $0.bindings.mode == .members }
|
||||
subject.value = [RoomMemberProxyMock].allMembersAsAdmin
|
||||
try await deferred.fulfill()
|
||||
}
|
||||
|
||||
private func setup(with members: [RoomMemberProxyMock]) {
|
||||
roomProxy = JoinedRoomProxyMock(.init(name: "test", members: members))
|
||||
viewModel = .init(userSession: UserSessionMock(.init()),
|
||||
|
||||
Reference in New Issue
Block a user