mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Infer joined and active member count from the member list
* Infer joined and active member count from the member list, default the members to all mock members * Address PR comments, fix some tests and screenshots
This commit is contained in:
@@ -42,6 +42,15 @@ extension RoomMemberProxyMock {
|
||||
}
|
||||
|
||||
// Mocks
|
||||
static var mockMe: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@me:matrix.org",
|
||||
displayName: "Me",
|
||||
avatarURL: URL.picturesDirectory,
|
||||
membership: .join,
|
||||
isAccountOwner: true,
|
||||
canInviteUsers: true))
|
||||
}
|
||||
|
||||
static var mockAlice: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@alice:matrix.org",
|
||||
displayName: "Alice",
|
||||
@@ -76,14 +85,13 @@ extension RoomMemberProxyMock {
|
||||
avatarURL: URL.picturesDirectory,
|
||||
membership: .join))
|
||||
}
|
||||
|
||||
static var mockMe: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@me:matrix.org",
|
||||
displayName: "Me",
|
||||
avatarURL: URL.picturesDirectory,
|
||||
membership: .join,
|
||||
isAccountOwner: true,
|
||||
canInviteUsers: true))
|
||||
|
||||
static var mockInvited: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@invited:matrix.org",
|
||||
displayName: "Invited",
|
||||
avatarURL: nil,
|
||||
membership: .invite,
|
||||
isIgnored: true))
|
||||
}
|
||||
|
||||
static var mockIgnored: RoomMemberProxyMock {
|
||||
@@ -103,3 +111,15 @@ extension RoomMemberProxyMock {
|
||||
canSendStateEvent: { allowedStateEvents.contains($0) }))
|
||||
}
|
||||
}
|
||||
|
||||
extension Array where Element == RoomMemberProxyMock {
|
||||
static let allMembers: [RoomMemberProxyMock] = [
|
||||
.mockMe,
|
||||
.mockAlice,
|
||||
.mockBob,
|
||||
.mockCharlie,
|
||||
.mockDan,
|
||||
.mockInvited,
|
||||
.mockIgnored
|
||||
]
|
||||
}
|
||||
|
||||
@@ -23,9 +23,9 @@ struct RoomProxyMockConfiguration {
|
||||
let displayName: String?
|
||||
var topic: String?
|
||||
var avatarURL: URL?
|
||||
var isDirect = Bool.random()
|
||||
var isSpace = Bool.random()
|
||||
var isPublic = Bool.random()
|
||||
var isDirect = false
|
||||
var isSpace = false
|
||||
var isPublic = false
|
||||
var isEncrypted = true
|
||||
var hasOngoingCall = true
|
||||
var canonicalAlias: String?
|
||||
@@ -37,15 +37,12 @@ struct RoomProxyMockConfiguration {
|
||||
return mock
|
||||
}()
|
||||
|
||||
var members: [RoomMemberProxyProtocol]?
|
||||
var members: [RoomMemberProxyMock] = .allMembers
|
||||
var memberForID: RoomMemberProxyMock = .mockMe
|
||||
var ownUserID = "@alice:somewhere.org"
|
||||
|
||||
var canUserTriggerRoomNotification = false
|
||||
var canUserJoinCall = true
|
||||
|
||||
var joinedMembersCount = 50
|
||||
var activeMembersCount = 25
|
||||
}
|
||||
|
||||
extension RoomProxyMock {
|
||||
@@ -66,15 +63,12 @@ extension RoomProxyMock {
|
||||
|
||||
timeline = configuration.timeline
|
||||
|
||||
joinedMembersCount = configuration.joinedMembersCount
|
||||
activeMembersCount = configuration.activeMembersCount
|
||||
ownUserID = configuration.ownUserID
|
||||
|
||||
if let configuredMembers = configuration.members {
|
||||
members = CurrentValueSubject(configuredMembers).asCurrentValuePublisher()
|
||||
} else {
|
||||
members = CurrentValueSubject([]).asCurrentValuePublisher()
|
||||
}
|
||||
|
||||
members = CurrentValueSubject(configuration.members).asCurrentValuePublisher()
|
||||
|
||||
joinedMembersCount = configuration.members.filter { $0.membership == .join }.count
|
||||
activeMembersCount = configuration.members.filter { $0.membership == .join || $0.membership == .invite }.count
|
||||
|
||||
updateMembersClosure = { }
|
||||
acceptInvitationClosure = { .success(()) }
|
||||
|
||||
Reference in New Issue
Block a user