Skip to content

Commit

Permalink
Update tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
pixlwave committed Mar 13, 2024
1 parent 2ab81af commit d2300b1
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ class RoomChangePermissionsScreenViewModelTests: XCTestCase {
viewModel = RoomChangePermissionsScreenViewModel(currentPermissions: .init(powerLevels: .mock),
group: .roomDetails,
roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock())
userIndicatorController: UserIndicatorControllerMock(),
analytics: ServiceLocator.shared.analytics)
}

func testChangeSetting() {
Expand Down Expand Up @@ -62,6 +63,7 @@ class RoomChangePermissionsScreenViewModelTests: XCTestCase {
context.settings[index] = RoomPermissionsSetting(title: "", value: .user, keyPath: \.roomAvatar)
XCTAssertEqual(context.settings[index].value, .user)
XCTAssertTrue(context.viewState.hasChanges)
XCTAssertEqual(context.settings.count, 3)

// When saving changes.
context.send(viewAction: .save)
Expand All @@ -70,8 +72,8 @@ class RoomChangePermissionsScreenViewModelTests: XCTestCase {

// Then the changes should be applied.
XCTAssertTrue(roomProxy.applyPowerLevelChangesCalled)
XCTAssertEqual(roomProxy.applyPowerLevelChangesReceivedChanges, .init(roomName: 50, roomAvatar: 0, roomTopic: 50),
"Only the changes for this screen should be applied, the others should be nil to remain unchanged.")
XCTAssertEqual(roomProxy.applyPowerLevelChangesReceivedChanges, .init(roomAvatar: 0),
"Only the avatar setting should be applied. No other settings were changed so they should be nil to remain left alone.")
}

func testSaveNoChanges() async throws {
Expand Down
18 changes: 9 additions & 9 deletions UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
}

func testInitialStateAdministrators() {
setupRoomProxy()
viewModel = RoomChangeRolesScreenViewModel(mode: .administrator, roomProxy: roomProxy, userIndicatorController: UserIndicatorControllerMock())
setupViewModel(mode: .administrator)
XCTAssertEqual(context.viewState.membersToPromote, [])
XCTAssertEqual(context.viewState.membersToDemote, [])
XCTAssertEqual(context.viewState.members, context.viewState.visibleMembers)
Expand All @@ -40,8 +39,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
}

func testInitialStateModerators() {
setupRoomProxy()
viewModel = RoomChangeRolesScreenViewModel(mode: .moderator, roomProxy: roomProxy, userIndicatorController: UserIndicatorControllerMock())
setupViewModel(mode: .moderator)
XCTAssertEqual(context.viewState.membersToPromote, [])
XCTAssertEqual(context.viewState.membersToDemote, [])
XCTAssertEqual(context.viewState.members, context.viewState.visibleMembers)
Expand Down Expand Up @@ -150,8 +148,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {

func testSaveModeratorChanges() async throws {
// Given the change roles view model for moderators.
setupRoomProxy()
viewModel = RoomChangeRolesScreenViewModel(mode: .moderator, roomProxy: roomProxy, userIndicatorController: UserIndicatorControllerMock())
setupViewModel(mode: .moderator)

guard let firstUser = context.viewState.members.first(where: { !context.viewState.isMemberSelected($0) }),
let existingModerator = context.viewState.membersWithRole.first else {
Expand All @@ -175,8 +172,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {

func testSavePromotedAdministrator() async throws {
// Given the change roles view model for administrators.
setupRoomProxy()
viewModel = RoomChangeRolesScreenViewModel(mode: .administrator, roomProxy: roomProxy, userIndicatorController: UserIndicatorControllerMock())
setupViewModel(mode: .administrator)
XCTAssertNil(context.alertInfo)

guard let firstUser = context.viewState.members.first(where: { !context.viewState.isMemberSelected($0) }) else {
Expand All @@ -201,7 +197,11 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
XCTAssertEqual(roomProxy.updatePowerLevelsForUsersReceivedUpdates?.contains(where: { $0.userID == firstUser.id && $0.powerLevel == 100 }), true)
}

private func setupRoomProxy() {
private func setupViewModel(mode: RoomMemberDetails.Role) {
roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin))
viewModel = RoomChangeRolesScreenViewModel(mode: mode,
roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock(),
analytics: ServiceLocator.shared.analytics)
}
}
3 changes: 2 additions & 1 deletion UnitTests/Sources/RoomMembersListViewModelTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ class RoomMembersListScreenViewModelTests: XCTestCase {
viewModel = .init(roomProxy: roomProxy,
mediaProvider: MockMediaProvider(),
userIndicatorController: ServiceLocator.shared.userIndicatorController,
appSettings: ServiceLocator.shared.settings)
appSettings: ServiceLocator.shared.settings,
analytics: ServiceLocator.shared.analytics)
}
}
27 changes: 12 additions & 15 deletions UnitTests/Sources/RoomRolesAndPermissionsScreenViewModelTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,25 +28,19 @@ class RoomRolesAndPermissionsScreenViewModelTests: XCTestCase {
}

func testEmptyCounters() {
roomProxy = RoomProxyMock(with: .init())
viewModel = RoomRolesAndPermissionsScreenViewModel(roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock())
setupViewModel(members: .allMembers)
XCTAssertEqual(context.viewState.administratorCount, 0)
XCTAssertEqual(context.viewState.moderatorCount, 0)
}

func testFilledCounters() {
roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin))
viewModel = RoomRolesAndPermissionsScreenViewModel(roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock())
setupViewModel(members: .allMembersAsAdmin)
XCTAssertEqual(context.viewState.administratorCount, 2)
XCTAssertEqual(context.viewState.moderatorCount, 1)
}

func testResetPermissions() async throws {
roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin))
viewModel = RoomRolesAndPermissionsScreenViewModel(roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock())
setupViewModel(members: .allMembersAsAdmin)

context.send(viewAction: .reset)
XCTAssertNotNil(context.alertInfo)
Expand All @@ -59,9 +53,7 @@ class RoomRolesAndPermissionsScreenViewModelTests: XCTestCase {
}

func testDemoteToModerator() async throws {
roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin))
viewModel = RoomRolesAndPermissionsScreenViewModel(roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock())
setupViewModel(members: .allMembersAsAdmin)

context.send(viewAction: .editOwnUserRole)
XCTAssertNotNil(context.alertInfo)
Expand All @@ -76,9 +68,7 @@ class RoomRolesAndPermissionsScreenViewModelTests: XCTestCase {
}

func testDemoteToMember() async throws {
roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin))
viewModel = RoomRolesAndPermissionsScreenViewModel(roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock())
setupViewModel(members: .allMembersAsAdmin)

context.send(viewAction: .editOwnUserRole)
XCTAssertNotNil(context.alertInfo)
Expand All @@ -91,4 +81,11 @@ class RoomRolesAndPermissionsScreenViewModelTests: XCTestCase {
XCTAssertEqual(roomProxy.updatePowerLevelsForUsersReceivedUpdates?.first?.powerLevel,
RoomMemberDetails.Role.user.rustPowerLevel)
}

private func setupViewModel(members: [RoomMemberProxyMock]) {
roomProxy = RoomProxyMock(with: .init(members: members))
viewModel = RoomRolesAndPermissionsScreenViewModel(roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock(),
analytics: ServiceLocator.shared.analytics)
}
}

0 comments on commit d2300b1

Please sign in to comment.