mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Last Owner should edit admins, and not leave when is last (#4372)
This commit is contained in:
@@ -49,21 +49,14 @@ class LocalizationTests: XCTestCase {
|
||||
// set app language to English
|
||||
Bundle.overrideLocalizations = ["en"]
|
||||
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 member")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 members")
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 Member")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 Members")
|
||||
|
||||
// set app language to Italian
|
||||
Bundle.overrideLocalizations = ["it"]
|
||||
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 membro")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 membri")
|
||||
|
||||
// // set app language to Polish
|
||||
// Bundle.overrideLocalizations = ["pl"]
|
||||
//
|
||||
// XCTAssertEqual(L10n.commonMemberCount(1), "1 sekunda") // one
|
||||
// XCTAssertEqual(L10n.commonMemberCount(2), "2 sekundy") // few
|
||||
// XCTAssertEqual(L10n.commonMemberCount(3), "5 sekund") // many, other
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 Membro")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 Membri")
|
||||
}
|
||||
|
||||
/// Test plurals fallback language for a language not supported at all
|
||||
@@ -71,8 +64,8 @@ class LocalizationTests: XCTestCase {
|
||||
// set app language to something Element don't support at all ("invalid identifier")
|
||||
Bundle.overrideLocalizations = ["xx"]
|
||||
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 member")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 members")
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 Member")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 Members")
|
||||
}
|
||||
|
||||
/// Test untranslated strings
|
||||
|
||||
@@ -38,8 +38,8 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
XCTAssertEqual(context.viewState.administrators, context.viewState.visibleAdministrators)
|
||||
XCTAssertEqual(context.viewState.moderators, context.viewState.visibleModerators)
|
||||
XCTAssertEqual(context.viewState.users, context.viewState.visibleUsers)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 1)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.first?.id, RoomMemberProxyMock.mockModerator.userID)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 3)
|
||||
XCTAssert(context.viewState.membersWithRole.first(where: { $0.id == RoomMemberProxyMock.mockModerator.userID }) != nil)
|
||||
XCTAssertFalse(context.viewState.hasChanges)
|
||||
XCTAssertFalse(context.viewState.isSearching)
|
||||
}
|
||||
@@ -55,7 +55,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertEqual(context.viewState.membersToPromote, [firstUser])
|
||||
XCTAssertEqual(context.viewState.membersToDemote, [])
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 2)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 4)
|
||||
XCTAssertTrue(context.viewState.membersWithRole.contains(firstUser))
|
||||
XCTAssertTrue(context.viewState.hasChanges)
|
||||
}
|
||||
@@ -71,7 +71,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertEqual(context.viewState.membersToPromote, [])
|
||||
XCTAssertEqual(context.viewState.membersToDemote, [])
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 1)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 3)
|
||||
XCTAssertFalse(context.viewState.membersWithRole.contains(firstUser))
|
||||
XCTAssertFalse(context.viewState.hasChanges)
|
||||
}
|
||||
@@ -87,14 +87,14 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertEqual(context.viewState.membersToPromote, [])
|
||||
XCTAssertEqual(context.viewState.membersToDemote, [])
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 1)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 3)
|
||||
XCTAssertFalse(context.viewState.membersWithRole.contains(firstUser))
|
||||
XCTAssertFalse(context.viewState.hasChanges)
|
||||
}
|
||||
|
||||
func testToggleModeratorOff() {
|
||||
testInitialStateModerators()
|
||||
guard let existingModerator = context.viewState.membersWithRole.first else {
|
||||
guard let existingModerator = context.viewState.membersWithRole.first(where: { $0.role == .moderator }) else {
|
||||
XCTFail("There should be a member with the role before we begin.")
|
||||
return
|
||||
}
|
||||
@@ -103,7 +103,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertEqual(context.viewState.membersToPromote, [])
|
||||
XCTAssertEqual(context.viewState.membersToDemote, [existingModerator])
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 0)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 2)
|
||||
XCTAssertFalse(context.viewState.membersWithRole.contains(existingModerator))
|
||||
XCTAssertTrue(context.viewState.hasChanges)
|
||||
}
|
||||
@@ -120,14 +120,14 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertEqual(context.viewState.membersToPromote, [])
|
||||
XCTAssertEqual(context.viewState.membersToDemote, [])
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 1)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 3)
|
||||
XCTAssertTrue(context.viewState.membersWithRole.contains(demotedMember))
|
||||
XCTAssertFalse(context.viewState.hasChanges)
|
||||
}
|
||||
|
||||
func testDemoteModerator() {
|
||||
testInitialStateModerators()
|
||||
guard let existingModerator = context.viewState.membersWithRole.first else {
|
||||
guard let existingModerator = context.viewState.membersWithRole.first(where: { $0.role == .moderator }) else {
|
||||
XCTFail("There should be a member with the role before we begin.")
|
||||
return
|
||||
}
|
||||
@@ -136,7 +136,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertEqual(context.viewState.membersToPromote, [])
|
||||
XCTAssertEqual(context.viewState.membersToDemote, [existingModerator])
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 0)
|
||||
XCTAssertEqual(context.viewState.membersWithRole.count, 2)
|
||||
XCTAssertFalse(context.viewState.membersWithRole.contains(existingModerator))
|
||||
XCTAssertTrue(context.viewState.hasChanges)
|
||||
}
|
||||
@@ -146,7 +146,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
setupViewModel(mode: .moderator)
|
||||
|
||||
guard let firstUser = context.viewState.users.first(where: { !context.viewState.isMemberSelected($0) }),
|
||||
let existingModerator = context.viewState.membersWithRole.first else {
|
||||
let existingModerator = context.viewState.membersWithRole.first(where: { $0.role == .moderator }) else {
|
||||
XCTFail("There should be a regular user and a moderator to begin with.")
|
||||
return
|
||||
}
|
||||
@@ -192,7 +192,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase {
|
||||
XCTAssertEqual(roomProxy.updatePowerLevelsForUsersReceivedUpdates?.contains { $0.userID == firstUser.id && $0.powerLevel == 100 }, true)
|
||||
}
|
||||
|
||||
private func setupViewModel(mode: RoomMemberDetails.Role) {
|
||||
private func setupViewModel(mode: RoomRole) {
|
||||
roomProxy = JoinedRoomProxyMock(.init(members: .allMembersAsAdmin))
|
||||
viewModel = RoomChangeRolesScreenViewModel(mode: mode,
|
||||
roomProxy: roomProxy,
|
||||
|
||||
@@ -55,7 +55,7 @@ class RoomRolesAndPermissionsScreenViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertTrue(roomProxy.updatePowerLevelsForUsersCalled)
|
||||
XCTAssertEqual(roomProxy.updatePowerLevelsForUsersReceivedUpdates?.first?.powerLevel,
|
||||
RoomMemberDetails.Role.moderator.powerLevelValue)
|
||||
RoomRole.moderator.powerLevelValue)
|
||||
}
|
||||
|
||||
func testDemoteToMember() async throws {
|
||||
@@ -70,7 +70,7 @@ class RoomRolesAndPermissionsScreenViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertTrue(roomProxy.updatePowerLevelsForUsersCalled)
|
||||
XCTAssertEqual(roomProxy.updatePowerLevelsForUsersReceivedUpdates?.first?.powerLevel,
|
||||
RoomMemberDetails.Role.user.powerLevelValue)
|
||||
RoomRole.user.powerLevelValue)
|
||||
}
|
||||
|
||||
private func setupViewModel(members: [RoomMemberProxyMock]) {
|
||||
|
||||
Reference in New Issue
Block a user