From 5c5f7c43a5c7e4bc1d524384045f8bf5ae7dc1b6 Mon Sep 17 00:00:00 2001 From: Mauro Romito Date: Wed, 12 Nov 2025 16:23:21 +0100 Subject: [PATCH] updated tests --- ...hangePermissionsScreenViewModelTests.swift | 35 ++++++++++++++----- UnitTests/Sources/RoomPermissionsTests.swift | 4 ++- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/UnitTests/Sources/RoomChangePermissionsScreenViewModelTests.swift b/UnitTests/Sources/RoomChangePermissionsScreenViewModelTests.swift index 6605f9854..88b6ee0dc 100644 --- a/UnitTests/Sources/RoomChangePermissionsScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomChangePermissionsScreenViewModelTests.swift @@ -18,16 +18,9 @@ class RoomChangePermissionsScreenViewModelTests: XCTestCase { var context: RoomChangePermissionsScreenViewModelType.Context { viewModel.context } - - override func setUp() { - roomProxy = JoinedRoomProxyMock(.init()) - viewModel = RoomChangePermissionsScreenViewModel(currentPermissions: .init(powerLevels: .mock), - roomProxy: roomProxy, - userIndicatorController: UserIndicatorControllerMock(), - analytics: ServiceLocator.shared.analytics) - } func testChangeSetting() { + setUp(isSpace: false) // Given a screen with no changes. guard let index = context.settings[.roomDetails]?.firstIndex(where: { $0.keyPath == \.roomAvatar }) else { XCTFail("There should be a setting for the room avatar.") @@ -46,6 +39,7 @@ class RoomChangePermissionsScreenViewModelTests: XCTestCase { } func testSave() async throws { + setUp(isSpace: false) // Given a screen with changes. guard let index = context.settings[.roomDetails]?.firstIndex(where: { $0.keyPath == \.roomAvatar }) else { XCTFail("There should be a setting for the room avatar.") @@ -68,6 +62,7 @@ class RoomChangePermissionsScreenViewModelTests: XCTestCase { } func testSaveNoChanges() async throws { + setUp(isSpace: false) // Given a screen with no changes. XCTAssertFalse(context.viewState.hasChanges) @@ -77,4 +72,28 @@ class RoomChangePermissionsScreenViewModelTests: XCTestCase { // Then nothing should happen. XCTAssertFalse(roomProxy.applyPowerLevelChangesCalled) } + + func testDefaultStateRoom() async throws { + setUp(isSpace: false) + XCTAssertNotNil(context.settings[.roomDetails]) + XCTAssertNotNil(context.settings[.memberModeration]) + XCTAssertNotNil(context.settings[.messagesAndContent]) + XCTAssertNil(context.settings[.manageSpace]) + } + + func testDefaultStateSpace() async throws { + setUp(isSpace: true) + XCTAssertNotNil(context.settings[.roomDetails]) + XCTAssertNotNil(context.settings[.memberModeration]) + XCTAssertNil(context.settings[.messagesAndContent]) + XCTAssertNotNil(context.settings[.manageSpace]) + } + + private func setUp(isSpace: Bool) { + roomProxy = JoinedRoomProxyMock(.init(isSpace: isSpace)) + viewModel = RoomChangePermissionsScreenViewModel(currentPermissions: .init(powerLevels: .mock), + roomProxy: roomProxy, + userIndicatorController: UserIndicatorControllerMock(), + analytics: ServiceLocator.shared.analytics) + } } diff --git a/UnitTests/Sources/RoomPermissionsTests.swift b/UnitTests/Sources/RoomPermissionsTests.swift index fc503b3c5..995166d11 100644 --- a/UnitTests/Sources/RoomPermissionsTests.swift +++ b/UnitTests/Sources/RoomPermissionsTests.swift @@ -23,7 +23,8 @@ class RoomPermissionsTests: XCTestCase { usersDefault: 0, roomName: 0, roomAvatar: 0, - roomTopic: 0) + roomTopic: 0, + manageRoomsInSpace: 100) // When creating room permissions from them. let permissions = RoomPermissions(powerLevels: powerLevels) @@ -39,5 +40,6 @@ class RoomPermissionsTests: XCTestCase { XCTAssertEqual(permissions.roomName, .user) XCTAssertEqual(permissions.roomAvatar, .user) XCTAssertEqual(permissions.roomTopic, .user) + XCTAssertEqual(permissions.manageRoomsInSpace, .administrator) } }