mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 20:39:24 +00:00
Better integrate RoomPowerLevelsProxyMock's own Configuration struct.
This commit is contained in:
committed by
Stefan Ceriu
parent
f522e15dac
commit
cbf405a67e
@@ -36,12 +36,6 @@ struct JoinedRoomProxyMockConfiguration {
|
||||
var ownUserID = RoomMemberProxyMock.mockMe.userID
|
||||
var inviter: RoomMemberProxyProtocol?
|
||||
|
||||
var canUserSendMessage = true
|
||||
var canUserInvite = true
|
||||
var canUserTriggerRoomNotification = false
|
||||
var canUserJoinCall = true
|
||||
var canUserPin = true
|
||||
|
||||
var shouldUseAutoUpdatingTimeline = false
|
||||
|
||||
var joinRule: JoinRule?
|
||||
@@ -50,6 +44,8 @@ struct JoinedRoomProxyMockConfiguration {
|
||||
var isVisibleInPublicDirectory = false
|
||||
var predecessor: PredecessorRoom?
|
||||
var successor: SuccessorRoom?
|
||||
|
||||
var powerLevelsConfiguration = RoomPowerLevelsProxyMockConfiguration()
|
||||
}
|
||||
|
||||
extension JoinedRoomProxyMock {
|
||||
@@ -99,24 +95,17 @@ extension JoinedRoomProxyMock {
|
||||
}
|
||||
updatePowerLevelsForUsersReturnValue = .success(())
|
||||
|
||||
let powerLevelsProxyMock = RoomPowerLevelsProxyMock(configuration: .init())
|
||||
let powerLevelsProxyMock = RoomPowerLevelsProxyMock(configuration: configuration.powerLevelsConfiguration)
|
||||
|
||||
powerLevelsProxyMock.canUserUserIDSendMessageReturnValue = .success(configuration.canUserSendMessage)
|
||||
powerLevelsProxyMock.canUserUserIDSendStateEventClosure = { [weak self] userID, _ in
|
||||
.success(self?.membersPublisher.value.first { $0.userID == userID }?.role ?? .user != .user)
|
||||
}
|
||||
powerLevelsProxyMock.canUserInviteUserIDReturnValue = .success(configuration.canUserInvite)
|
||||
powerLevelsProxyMock.canUserRedactOtherUserIDReturnValue = .success(false)
|
||||
powerLevelsProxyMock.canUserRedactOwnUserIDReturnValue = .success(true)
|
||||
powerLevelsProxyMock.canUserKickUserIDClosure = { [weak self] userID in
|
||||
.success(self?.membersPublisher.value.first { $0.userID == userID }?.role ?? .user != .user)
|
||||
}
|
||||
powerLevelsProxyMock.canUserBanUserIDClosure = { [weak self] userID in
|
||||
.success(self?.membersPublisher.value.first { $0.userID == userID }?.role ?? .user != .user)
|
||||
}
|
||||
powerLevelsProxyMock.canUserTriggerRoomNotificationUserIDReturnValue = .success(configuration.canUserTriggerRoomNotification)
|
||||
powerLevelsProxyMock.canUserJoinCallUserIDReturnValue = .success(configuration.canUserJoinCall)
|
||||
powerLevelsProxyMock.canUserPinOrUnpinUserIDReturnValue = .success(configuration.canUserPin)
|
||||
|
||||
powerLevelsReturnValue = .success(powerLevelsProxyMock)
|
||||
|
||||
|
||||
@@ -7,24 +7,35 @@
|
||||
|
||||
import MatrixRustSDK
|
||||
|
||||
struct RoomPowerLevelsProxyMockConfiguration {
|
||||
var canUserSendMessage = true
|
||||
var canUserSendState = false
|
||||
var canUserInvite = true
|
||||
var canUserRedactOther = false
|
||||
var canUserRedactOwn = true
|
||||
var canUserKick = false
|
||||
var canUserBan = false
|
||||
var canUserTriggerRoomNotification = false
|
||||
var canUserPin = true
|
||||
var canUserJoinCall = true
|
||||
}
|
||||
|
||||
extension RoomPowerLevelsProxyMock {
|
||||
struct Configuration { }
|
||||
|
||||
convenience init(configuration: Configuration) {
|
||||
convenience init(configuration: RoomPowerLevelsProxyMockConfiguration) {
|
||||
self.init()
|
||||
|
||||
underlyingValues = RoomPowerLevelsValues.mock
|
||||
|
||||
canUserUserIDSendMessageReturnValue = .success(true)
|
||||
canUserUserIDSendStateEventReturnValue = .success(true)
|
||||
canUserInviteUserIDReturnValue = .success(true)
|
||||
canUserRedactOtherUserIDReturnValue = .success(true)
|
||||
canUserRedactOwnUserIDReturnValue = .success(true)
|
||||
canUserKickUserIDReturnValue = .success(true)
|
||||
canUserBanUserIDReturnValue = .success(true)
|
||||
canUserTriggerRoomNotificationUserIDReturnValue = .success(true)
|
||||
canUserPinOrUnpinUserIDReturnValue = .success(true)
|
||||
canUserJoinCallUserIDReturnValue = .success(true)
|
||||
canUserUserIDSendMessageReturnValue = .success(configuration.canUserSendMessage)
|
||||
canUserUserIDSendStateEventReturnValue = .success(configuration.canUserSendState)
|
||||
canUserInviteUserIDReturnValue = .success(configuration.canUserInvite)
|
||||
canUserRedactOtherUserIDReturnValue = .success(configuration.canUserRedactOther)
|
||||
canUserRedactOwnUserIDReturnValue = .success(configuration.canUserRedactOwn)
|
||||
canUserKickUserIDReturnValue = .success(configuration.canUserKick)
|
||||
canUserBanUserIDReturnValue = .success(configuration.canUserBan)
|
||||
canUserTriggerRoomNotificationUserIDReturnValue = .success(configuration.canUserTriggerRoomNotification)
|
||||
canUserPinOrUnpinUserIDReturnValue = .success(configuration.canUserPin)
|
||||
canUserJoinCallUserIDReturnValue = .success(configuration.canUserJoinCall)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview {
|
||||
roomProxy: JoinedRoomProxyMock(.init(name: "Some room",
|
||||
members: members,
|
||||
ownUserID: ownUserID,
|
||||
canUserInvite: false)),
|
||||
powerLevelsConfiguration: .init(canUserInvite: false))),
|
||||
mediaProvider: MediaProviderMock(configuration: .init()),
|
||||
userIndicatorController: ServiceLocator.shared.userIndicatorController,
|
||||
analytics: ServiceLocator.shared.analytics)
|
||||
|
||||
@@ -240,8 +240,8 @@ struct RoomScreen_Previews: PreviewProvider, TestablePreview {
|
||||
let roomProxyMock = JoinedRoomProxyMock(.init(id: "stable_id",
|
||||
name: "Preview room",
|
||||
hasOngoingCall: true,
|
||||
canUserSendMessage: canSendMessage,
|
||||
successor: hasSuccessor ? .init(roomId: UUID().uuidString, reason: nil) : nil))
|
||||
successor: hasSuccessor ? .init(roomId: UUID().uuidString, reason: nil) : nil,
|
||||
powerLevelsConfiguration: .init(canUserSendMessage: canSendMessage)))
|
||||
let roomViewModel = RoomScreenViewModel.mock(roomProxyMock: roomProxyMock)
|
||||
let timelineViewModel = TimelineViewModel(roomProxy: roomProxyMock,
|
||||
timelineController: MockTimelineController(),
|
||||
|
||||
Reference in New Issue
Block a user