diff --git a/ElementX/Sources/Mocks/SDK/LeaveSpaceHandleSDKMock.swift b/ElementX/Sources/Mocks/SDK/LeaveSpaceHandleSDKMock.swift index 8b8528e9f..a7ce5ce37 100644 --- a/ElementX/Sources/Mocks/SDK/LeaveSpaceHandleSDKMock.swift +++ b/ElementX/Sources/Mocks/SDK/LeaveSpaceHandleSDKMock.swift @@ -22,14 +22,18 @@ extension LeaveSpaceHandleSDKMock { } extension [LeaveSpaceRoom] { - static func mockLastSpaceAdmin(spaceRoomProxy: SpaceRoomProxyProtocol) -> [LeaveSpaceRoom] { - mockRooms + [LeaveSpaceRoom(spaceRoom: SpaceRoom(id: spaceRoomProxy.id, - name: spaceRoomProxy.name, - avatarURL: spaceRoomProxy.avatarURL, - isSpace: true, - memberCount: UInt64(spaceRoomProxy.joinedMembersCount), - joinRule: spaceRoomProxy.joinRule), - isLastAdmin: true)] + static func mockRoomsWithSpace(spaceRoomProxy: SpaceRoomProxyProtocol, isLastAdmin: Bool) -> [LeaveSpaceRoom] { + mockRooms + mockSingleSpace(spaceRoomProxy: spaceRoomProxy, isLastAdmin: isLastAdmin) + } + + static func mockSingleSpace(spaceRoomProxy: SpaceRoomProxyProtocol, isLastAdmin: Bool) -> [LeaveSpaceRoom] { + [LeaveSpaceRoom(spaceRoom: SpaceRoom(id: spaceRoomProxy.id, + name: spaceRoomProxy.name, + avatarURL: spaceRoomProxy.avatarURL, + isSpace: true, + memberCount: UInt64(spaceRoomProxy.joinedMembersCount), + joinRule: spaceRoomProxy.joinRule), + isLastAdmin: isLastAdmin)] } static var mockAdminRooms: [LeaveSpaceRoom] { diff --git a/ElementX/Sources/Screens/Spaces/LeaveSpace/View/LeaveSpaceView.swift b/ElementX/Sources/Screens/Spaces/LeaveSpace/View/LeaveSpaceView.swift index 5a4a89ea4..036c3b581 100644 --- a/ElementX/Sources/Screens/Spaces/LeaveSpace/View/LeaveSpaceView.swift +++ b/ElementX/Sources/Screens/Spaces/LeaveSpace/View/LeaveSpaceView.swift @@ -148,8 +148,8 @@ struct LeaveSpaceView_Previews: PreviewProvider, TestablePreview { let rooms: [LeaveSpaceRoom] = switch mode { case .manyRooms: .mockRooms case .onlyAdminRooms: .mockAdminRooms - case .noRooms: [] - case .lastSpaceAdmin: .mockLastSpaceAdmin(spaceRoomProxy: spaceRoomProxy) + case .noRooms: .mockSingleSpace(spaceRoomProxy: spaceRoomProxy, isLastAdmin: false) + case .lastSpaceAdmin: .mockRoomsWithSpace(spaceRoomProxy: spaceRoomProxy, isLastAdmin: true) } let leaveHandle = LeaveSpaceHandleProxy(spaceID: spaceRoomProxy.id, diff --git a/ElementX/Sources/Services/Spaces/LeaveSpaceHandleProxy.swift b/ElementX/Sources/Services/Spaces/LeaveSpaceHandleProxy.swift index 93b54330a..791b281f3 100644 --- a/ElementX/Sources/Services/Spaces/LeaveSpaceHandleProxy.swift +++ b/ElementX/Sources/Services/Spaces/LeaveSpaceHandleProxy.swift @@ -42,9 +42,9 @@ final class LeaveSpaceHandleProxy { mode = if space?.isLastAdmin == true { .lastSpaceAdmin - } else if rooms.isEmpty { + } else if self.rooms.isEmpty { .noRooms - } else if rooms.count(where: { !$0.isLastAdmin }) == 0 { + } else if self.rooms.count(where: { !$0.isLastAdmin }) == 0 { .onlyAdminRooms } else { .manyRooms