misc(power level) : update tests following api change

This commit is contained in:
ganfra 2025-12-09 20:50:31 +01:00
parent 400d520685
commit 48971d4aee
15 changed files with 418 additions and 605 deletions

View file

@ -42,6 +42,7 @@ class FakeBaseRoom(
override val sessionId: SessionId = A_SESSION_ID,
override val roomId: RoomId = A_ROOM_ID,
initialRoomInfo: RoomInfo = aRoomInfo(),
private val roomPermissions: RoomPermissions = FakeRoomPermissions(),
override val roomCoroutineScope: CoroutineScope = TestScope(),
private var roomPermalinkResult: () -> Result<String> = { lambdaError() },
private var eventPermalinkResult: (EventId) -> Result<String> = { lambdaError() },
@ -50,17 +51,6 @@ class FakeBaseRoom(
private val userRoleResult: () -> Result<RoomMember.Role> = { lambdaError() },
private val getUpdatedMemberResult: (UserId) -> Result<RoomMember> = { lambdaError() },
private val joinRoomResult: () -> Result<Unit> = { lambdaError() },
private val roomPermissionsResult: () -> Result<RoomPermissions> = { Result.success(FakeRoomPermissions()) },
private val canInviteResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val canKickResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val canBanResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val canRedactOwnResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val canRedactOtherResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val canSendStateResult: (UserId, StateEventType) -> Result<Boolean> = { _, _ -> lambdaError() },
private val canUserSendMessageResult: (UserId, MessageEventType) -> Result<Boolean> = { _, _ -> lambdaError() },
private val canUserTriggerRoomNotificationResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val canUserJoinCallResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val canUserPinUnpinResult: (UserId) -> Result<Boolean> = { lambdaError() },
private val setIsFavoriteResult: (Boolean) -> Result<Unit> = { lambdaError() },
private val markAsReadResult: (ReceiptType) -> Result<Unit> = { Result.success(Unit) },
private val powerLevelsResult: () -> Result<RoomPowerLevelsValues> = { lambdaError() },
@ -133,7 +123,7 @@ class FakeBaseRoom(
}
override suspend fun roomPermissions(): Result<RoomPermissions> {
return roomPermissionsResult()
return Result.success(roomPermissions)
}
override suspend fun getPermalink(): Result<String> {
@ -160,46 +150,6 @@ class FakeBaseRoom(
return forgetResult()
}
override suspend fun canUserBan(userId: UserId): Result<Boolean> {
return canBanResult(userId)
}
override suspend fun canUserKick(userId: UserId): Result<Boolean> {
return canKickResult(userId)
}
override suspend fun canUserInvite(userId: UserId): Result<Boolean> {
return canInviteResult(userId)
}
override suspend fun canUserRedactOwn(userId: UserId): Result<Boolean> {
return canRedactOwnResult(userId)
}
override suspend fun canUserRedactOther(userId: UserId): Result<Boolean> {
return canRedactOtherResult(userId)
}
override suspend fun canUserSendState(userId: UserId, type: StateEventType): Result<Boolean> {
return canSendStateResult(userId, type)
}
override suspend fun canUserSendMessage(userId: UserId, type: MessageEventType): Result<Boolean> {
return canUserSendMessageResult(userId, type)
}
override suspend fun canUserTriggerRoomNotification(userId: UserId): Result<Boolean> {
return canUserTriggerRoomNotificationResult(userId)
}
override suspend fun canUserJoinCall(userId: UserId): Result<Boolean> {
return canUserJoinCallResult(userId)
}
override suspend fun canUserPinUnpin(userId: UserId): Result<Boolean> {
return canUserPinUnpinResult(userId)
}
override suspend fun setIsFavorite(isFavorite: Boolean): Result<Unit> {
return setIsFavoriteResult(isFavorite)
}

View file

@ -13,46 +13,48 @@ import io.element.android.libraries.matrix.api.room.StateEventType
import io.element.android.libraries.matrix.api.room.powerlevels.RoomPermissions
data class FakeRoomPermissions(
val ownerCanBan: Boolean = false,
val ownerCanInvite: Boolean = false,
val ownerCanKick: Boolean = false,
val ownerCanPinUnpin: Boolean = false,
val ownerCanRedactOther: Boolean = false,
val ownerCanRedactOwn: Boolean = false,
val ownerCanTriggerRoomNotification: Boolean = false,
val ownerCanSendMessage: (MessageEventType) -> Boolean = { false },
val ownerCanSendState: (StateEventType) -> Boolean = { false },
val userCanBan: (UserId) -> Boolean = { false },
val userCanInvite: (UserId) -> Boolean = { false },
val userCanKick: (UserId) -> Boolean = { false },
val userCanPinUnpin: (UserId) -> Boolean = { false },
val userCanRedactOther: (UserId) -> Boolean = { false },
val userCanRedactOwn: (UserId) -> Boolean = { false },
val userCanTriggerRoomNotification: (UserId) -> Boolean = { false },
val userCanSendMessage: (UserId, MessageEventType) -> Boolean = { _, _ -> false },
val userCanSendState: (UserId, StateEventType) -> Boolean = { _, _ -> false },
private val canBan: Boolean = false,
private val canInvite: Boolean = false,
private val canKick: Boolean = false,
private val canPinUnpin: Boolean = false,
private val canRedactOther: Boolean = false,
private val canRedactOwn: Boolean = false,
private val canTriggerRoomNotification: Boolean = false,
private val canSendMessage: (MessageEventType) -> Boolean = { false },
private val canSendState: (StateEventType) -> Boolean = { false },
private val canUserBan: (UserId) -> Boolean = { false },
private val canUserInvite: (UserId) -> Boolean = { false },
private val canUserKick: (UserId) -> Boolean = { false },
private val canUserPinUnpin: (UserId) -> Boolean = { false },
private val canUserRedactOther: (UserId) -> Boolean = { false },
private val canUserRedactOwn: (UserId) -> Boolean = { false },
private val canUserTriggerRoomNotification: (UserId) -> Boolean = { false },
private val canUserSendMessage: (UserId, MessageEventType) -> Boolean = { _, _ -> false },
private val canUserSendState: (UserId, StateEventType) -> Boolean = { _, _ -> false },
) : RoomPermissions {
override fun canOwnUserBan(): Boolean = ownerCanBan
override fun canOwnUserInvite(): Boolean = ownerCanInvite
override fun canOwnUserKick(): Boolean = ownerCanKick
override fun canOwnUserPinUnpin(): Boolean = ownerCanPinUnpin
override fun canOwnUserRedactOther(): Boolean = ownerCanRedactOther
override fun canOwnUserRedactOwn(): Boolean = ownerCanRedactOwn
override fun canOwnUserSendMessage(message: MessageEventType): Boolean = ownerCanSendMessage(message)
override fun canOwnUserSendState(stateEvent: StateEventType): Boolean = ownerCanSendState(stateEvent)
override fun canOwnUserTriggerRoomNotification(): Boolean = ownerCanTriggerRoomNotification
override fun canUserBan(userId: UserId): Boolean = userCanBan(userId)
override fun canUserInvite(userId: UserId): Boolean = userCanInvite(userId)
override fun canUserKick(userId: UserId): Boolean = userCanKick(userId)
override fun canUserPinUnpin(userId: UserId): Boolean = userCanPinUnpin(userId)
override fun canUserRedactOther(userId: UserId): Boolean = userCanRedactOther(userId)
override fun canUserRedactOwn(userId: UserId): Boolean = userCanRedactOwn(userId)
override fun canUserSendMessage(userId: UserId, message: MessageEventType): Boolean = userCanSendMessage(userId, message)
override fun canUserSendState(userId: UserId, stateEvent: StateEventType): Boolean = userCanSendState(userId, stateEvent)
override fun canUserTriggerRoomNotification(userId: UserId): Boolean = userCanTriggerRoomNotification(userId)
override fun canOwnUserBan(): Boolean = canBan
override fun canOwnUserInvite(): Boolean = canInvite
override fun canOwnUserKick(): Boolean = canKick
override fun canOwnUserPinUnpin(): Boolean = canPinUnpin
override fun canOwnUserRedactOther(): Boolean = canRedactOther
override fun canOwnUserRedactOwn(): Boolean = canRedactOwn
override fun canOwnUserSendMessage(message: MessageEventType): Boolean = canSendMessage(message)
override fun canOwnUserSendState(stateEvent: StateEventType): Boolean = canSendState(stateEvent)
override fun canOwnUserTriggerRoomNotification(): Boolean = canTriggerRoomNotification
override fun canUserBan(userId: UserId): Boolean = canUserBan(userId)
override fun canUserInvite(userId: UserId): Boolean = canUserInvite(userId)
override fun canUserKick(userId: UserId): Boolean = canUserKick(userId)
override fun canUserPinUnpin(userId: UserId): Boolean = canUserPinUnpin(userId)
override fun canUserRedactOther(userId: UserId): Boolean = canUserRedactOther(userId)
override fun canUserRedactOwn(userId: UserId): Boolean = canUserRedactOwn(userId)
override fun canUserSendMessage(userId: UserId, message: MessageEventType): Boolean = canUserSendMessage(userId, message)
override fun canUserSendState(userId: UserId, stateEvent: StateEventType): Boolean = canUserSendState(userId, stateEvent)
override fun canUserTriggerRoomNotification(userId: UserId): Boolean = canUserTriggerRoomNotification(userId)
override fun close() {
// no-op for the fake
}
}