Files
letro-ios/ElementX/Sources/Mocks/RoomPowerLevelsProxyMock.swift
2026-05-06 13:04:11 +02:00

73 lines
3.2 KiB
Swift

//
// Copyright 2025 Element Creations Ltd.
// Copyright 2025 New Vector Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
// Please see LICENSE files in the repository root for full details.
//
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
var canUserEditRoomsAndPermissions = true
}
extension RoomPowerLevelsProxyMock {
convenience init(configuration: RoomPowerLevelsProxyMockConfiguration) {
self.init()
underlyingValues = RoomPowerLevelsValues.mock
canOwnUserSendMessageReturnValue = configuration.canUserSendMessage
canOwnUserSendStateEventReturnValue = configuration.canUserSendState
canOwnUserInviteReturnValue = configuration.canUserInvite
canOwnUserRedactOtherReturnValue = configuration.canUserRedactOther
canOwnUserRedactOwnReturnValue = configuration.canUserRedactOwn
canOwnUserKickReturnValue = configuration.canUserKick
canOwnUserBanReturnValue = configuration.canUserBan
canOwnUserTriggerRoomNotificationReturnValue = configuration.canUserTriggerRoomNotification
canOwnUserPinOrUnpinReturnValue = configuration.canUserPin
canOwnUserJoinCallReturnValue = configuration.canUserJoinCall
canOwnUserEditRolesAndPermissionsReturnValue = configuration.canUserEditRoomsAndPermissions
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)
}
}
extension RoomPowerLevelsValues {
static var mock: RoomPowerLevelsValues {
RoomPowerLevelsValues(ban: 50,
invite: 0,
kick: 50,
redact: 50,
eventsDefault: 0,
stateDefault: 50,
usersDefault: 0,
roomName: 50,
roomAvatar: 50,
roomTopic: 50,
spaceChild: 50,
beacon: 0,
beaconInfo: 50)
}
}