mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Rename SpaceRoomProxy to SpaceServiceRoom and stop proxying the struct. (#4952)
* Rename SpaceRoomProxy to SpaceServiceRoom. The underlying type is a struct, we don't need to proxy it. * Actually stop proxying the SpaceRoom.
This commit is contained in:
@@ -311,7 +311,7 @@ class HomeScreenViewModelTests: XCTestCase {
|
||||
XCTAssertEqual(invitedRoomIDs.count, 2)
|
||||
|
||||
let deferred = deferFulfillment(viewModel.actions) {
|
||||
$0 == .presentSpace(SpaceRoomListProxyMock(.init(spaceRoomProxy: SpaceRoomProxyMock(.init(id: invitedRoomIDs[0], isSpace: true)))))
|
||||
$0 == .presentSpace(SpaceRoomListProxyMock(.init(spaceServiceRoom: SpaceServiceRoomMock(.init(id: invitedRoomIDs[0], isSpace: true)))))
|
||||
}
|
||||
context.send(viewAction: .acceptInvite(roomIdentifier: invitedRoomIDs[0]))
|
||||
try await deferred.fulfill()
|
||||
@@ -408,7 +408,7 @@ class HomeScreenViewModelTests: XCTestCase {
|
||||
|
||||
let spaceServiceProxy = SpaceServiceProxyMock(.init())
|
||||
spaceServiceProxy.spaceRoomListSpaceIDClosure = { spaceID in
|
||||
.success(SpaceRoomListProxyMock(.init(spaceRoomProxy: SpaceRoomProxyMock(.init(id: spaceID, isSpace: true)))))
|
||||
.success(SpaceRoomListProxyMock(.init(spaceServiceRoom: SpaceServiceRoomMock(.init(id: spaceID, isSpace: true)))))
|
||||
}
|
||||
clientProxy.underlyingSpaceService = spaceServiceProxy
|
||||
case nil:
|
||||
|
||||
@@ -29,7 +29,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testSetSingleJoinedSpaceMembersAccess() async throws {
|
||||
let singleRoom = [SpaceRoomProxyProtocol].mockSingleRoom
|
||||
let singleRoom = [SpaceServiceRoomProtocol].mockSingleRoom
|
||||
let space = singleRoom[0]
|
||||
setupViewModel(joinedParentSpaces: singleRoom, joinRule: .public)
|
||||
|
||||
@@ -60,7 +60,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testSetSingleJoinedAskToJoinWithSpaceMembersAccess() async throws {
|
||||
let singleRoom = [SpaceRoomProxyProtocol].mockSingleRoom
|
||||
let singleRoom = [SpaceServiceRoomProtocol].mockSingleRoom
|
||||
let space = singleRoom[0]
|
||||
setupViewModel(joinedParentSpaces: singleRoom, joinRule: .public)
|
||||
|
||||
@@ -91,7 +91,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testSingleUnknownSpaceMembersAccessCanBeReselected() async throws {
|
||||
let singleRoom = [SpaceRoomProxyProtocol].mockSingleRoom
|
||||
let singleRoom = [SpaceServiceRoomProtocol].mockSingleRoom
|
||||
let space = singleRoom[0]
|
||||
setupViewModel(joinedParentSpaces: [], joinRule: .restricted(rules: [.roomMembership(roomId: space.id)]))
|
||||
|
||||
@@ -122,7 +122,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testMultipleKnownSpacesMembersSelection() async throws {
|
||||
let spaces = [SpaceRoomProxyProtocol].mockJoinedSpaces2
|
||||
let spaces = [SpaceServiceRoomProtocol].mockJoinedSpaces2
|
||||
setupViewModel(joinedParentSpaces: spaces, joinRule: .public)
|
||||
|
||||
let deferred = deferFulfillment(context.$viewState) { $0.selectableJoinedSpaces.count == 3 }
|
||||
@@ -166,7 +166,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testMultipleKnownAskToJoinSpacesMembersSelection() async throws {
|
||||
let spaces = [SpaceRoomProxyProtocol].mockJoinedSpaces2
|
||||
let spaces = [SpaceServiceRoomProtocol].mockJoinedSpaces2
|
||||
setupViewModel(joinedParentSpaces: spaces, joinRule: .public)
|
||||
|
||||
let deferred = deferFulfillment(context.$viewState) { $0.selectableJoinedSpaces.count == 3 }
|
||||
@@ -210,7 +210,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testMultipleSpacesMembersSelection() async throws {
|
||||
let spaces = [SpaceRoomProxyProtocol].mockJoinedSpaces2
|
||||
let spaces = [SpaceServiceRoomProtocol].mockJoinedSpaces2
|
||||
setupViewModel(joinedParentSpaces: spaces,
|
||||
joinRule: .restricted(rules: [.roomMembership(roomId: "unknownSpaceID")]))
|
||||
|
||||
@@ -256,8 +256,8 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testMultipleSpacesMembersSelectionWithAnExistingNonParentButJoinedSpace() async throws {
|
||||
let joinedParentSpaces = [SpaceRoomProxyProtocol].mockJoinedSpaces2
|
||||
let singleRoom = [SpaceRoomProxyProtocol].mockSingleRoom
|
||||
let joinedParentSpaces = [SpaceServiceRoomProtocol].mockJoinedSpaces2
|
||||
let singleRoom = [SpaceServiceRoomProtocol].mockSingleRoom
|
||||
let space = singleRoom[0]
|
||||
let allSpaces = joinedParentSpaces + singleRoom
|
||||
setupViewModel(joinedParentSpaces: joinedParentSpaces,
|
||||
@@ -319,7 +319,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
func testEmptySpaceMembersSelectionWithJoinedParentEdgeCase() async throws {
|
||||
// Edge case where there is one available joined parent but the room has a restricted join rule.
|
||||
// With no space ids in it
|
||||
let singleRoom = [SpaceRoomProxyProtocol].mockSingleRoom
|
||||
let singleRoom = [SpaceServiceRoomProtocol].mockSingleRoom
|
||||
setupViewModel(joinedParentSpaces: singleRoom,
|
||||
joinRule: .restricted(rules: []))
|
||||
|
||||
@@ -424,8 +424,8 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
|
||||
// MARK: - Helpers
|
||||
|
||||
private func setupViewModel(joinedParentSpaces: [SpaceRoomProxyProtocol],
|
||||
topLevelSpaces: [SpaceRoomProxyProtocol] = [],
|
||||
private func setupViewModel(joinedParentSpaces: [SpaceServiceRoomProtocol],
|
||||
topLevelSpaces: [SpaceServiceRoomProtocol] = [],
|
||||
joinRule: JoinRule) {
|
||||
let appSettings = AppSettings()
|
||||
appSettings.spaceSettingsEnabled = true
|
||||
|
||||
@@ -13,7 +13,7 @@ import XCTest
|
||||
|
||||
@MainActor
|
||||
class SpaceListScreenViewModelTests: XCTestCase {
|
||||
var topLevelSpacesSubject: CurrentValueSubject<[SpaceRoomProxyProtocol], Never>!
|
||||
var topLevelSpacesSubject: CurrentValueSubject<[SpaceServiceRoomProtocol], Never>!
|
||||
var spaceServiceProxy: SpaceServiceProxyMock!
|
||||
var appSettings: AppSettings!
|
||||
|
||||
@@ -47,7 +47,7 @@ class SpaceListScreenViewModelTests: XCTestCase {
|
||||
|
||||
deferred = deferFulfillment(context.observe(\.viewState.topLevelSpaces)) { $0.count == 1 }
|
||||
topLevelSpacesSubject.send([
|
||||
SpaceRoomProxyMock(.init(isSpace: true))
|
||||
SpaceServiceRoomMock(.init(isSpace: true))
|
||||
])
|
||||
try await deferred.fulfill()
|
||||
XCTAssertEqual(context.viewState.topLevelSpaces.count, 1)
|
||||
@@ -97,15 +97,15 @@ class SpaceListScreenViewModelTests: XCTestCase {
|
||||
let userSession = UserSessionMock(.init(clientProxy: clientProxy))
|
||||
|
||||
topLevelSpacesSubject = .init([
|
||||
SpaceRoomProxyMock(.init(id: "space1", isSpace: true)),
|
||||
SpaceRoomProxyMock(.init(id: "space2", isSpace: true)),
|
||||
SpaceRoomProxyMock(.init(id: "space3", isSpace: true))
|
||||
SpaceServiceRoomMock(.init(id: "space1", isSpace: true)),
|
||||
SpaceServiceRoomMock(.init(id: "space2", isSpace: true)),
|
||||
SpaceServiceRoomMock(.init(id: "space3", isSpace: true))
|
||||
])
|
||||
spaceServiceProxy = SpaceServiceProxyMock(.init())
|
||||
spaceServiceProxy.topLevelSpacesPublisher = topLevelSpacesSubject.asCurrentValuePublisher()
|
||||
spaceServiceProxy.spaceRoomListSpaceIDClosure = { [topLevelSpacesSubject] spaceID in
|
||||
guard let spaceRoomProxy = topLevelSpacesSubject?.value.first(where: { $0.id == spaceID }) else { return .failure(.missingSpace) }
|
||||
return .success(SpaceRoomListProxyMock(.init(spaceRoomProxy: spaceRoomProxy)))
|
||||
guard let spaceServiceRoom = topLevelSpacesSubject?.value.first(where: { $0.id == spaceID }) else { return .failure(.missingSpace) }
|
||||
return .success(SpaceRoomListProxyMock(.init(spaceServiceRoom: spaceServiceRoom)))
|
||||
}
|
||||
clientProxy.spaceService = spaceServiceProxy
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import MatrixRustSDKMocks
|
||||
@MainActor
|
||||
class SpaceScreenViewModelTests: XCTestCase {
|
||||
var spaceRoomListProxy: SpaceRoomListProxyMock!
|
||||
let mockSpaceRooms = [SpaceRoomProxyProtocol].mockSpaceList
|
||||
let mockSpaceRooms = [SpaceServiceRoomProtocol].mockSpaceList
|
||||
var clientProxy: ClientProxyMock!
|
||||
var paginationStateSubject: CurrentValueSubject<SpaceRoomListPaginationState, Never> = .init(.idle(endReached: true))
|
||||
var rustLeaveHandle: LeaveSpaceHandleSDKMock!
|
||||
@@ -118,7 +118,7 @@ class SpaceScreenViewModelTests: XCTestCase {
|
||||
let action = try await deferred.fulfill()
|
||||
|
||||
switch action {
|
||||
case .selectUnjoinedSpace(let spaceRoomProxy) where spaceRoomProxy.id == selectedSpace.id:
|
||||
case .selectUnjoinedSpace(let spaceServiceRoom) where spaceServiceRoom.id == selectedSpace.id:
|
||||
break
|
||||
default:
|
||||
XCTFail("The action should select the space.")
|
||||
@@ -195,7 +195,7 @@ class SpaceScreenViewModelTests: XCTestCase {
|
||||
leaveSpaceViewModel.context.send(viewAction: .deselectAll)
|
||||
XCTAssertEqual(handle.selectedCount, 0, "Deselecting all should result in no selected rooms.")
|
||||
|
||||
leaveSpaceViewModel.context.send(viewAction: .toggleRoom(roomID: firstSelectedRoom.spaceRoomProxy.id))
|
||||
leaveSpaceViewModel.context.send(viewAction: .toggleRoom(roomID: firstSelectedRoom.spaceServiceRoom.id))
|
||||
XCTAssertEqual(handle.selectedCount, 1, "Toggling a room should result in 1 selected room")
|
||||
|
||||
// Confirming the leave should leave the selected room and then the space.
|
||||
@@ -205,21 +205,21 @@ class SpaceScreenViewModelTests: XCTestCase {
|
||||
XCTAssertNil(context.leaveSpaceViewModel)
|
||||
XCTAssertTrue(rustLeaveHandle.leaveRoomIdsCalled)
|
||||
XCTAssertEqual(rustLeaveHandle.leaveRoomIdsReceivedRoomIds,
|
||||
[firstSelectedRoom.spaceRoomProxy.id, spaceRoomListProxy.id],
|
||||
[firstSelectedRoom.spaceServiceRoom.id, spaceRoomListProxy.id],
|
||||
"Confirming the leave should first leave the selected room and then the space.")
|
||||
}
|
||||
|
||||
// MARK: - Helpers
|
||||
|
||||
private func setupViewModel(paginationResponses: [[SpaceRoomProxyProtocol]] = []) {
|
||||
spaceRoomListProxy = SpaceRoomListProxyMock(.init(spaceRoomProxy: SpaceRoomProxyMock(.init(isSpace: true)),
|
||||
private func setupViewModel(paginationResponses: [[SpaceServiceRoomProtocol]] = []) {
|
||||
spaceRoomListProxy = SpaceRoomListProxyMock(.init(spaceServiceRoom: SpaceServiceRoomMock(.init(isSpace: true)),
|
||||
paginationStateSubject: paginationStateSubject,
|
||||
paginationResponses: paginationResponses))
|
||||
|
||||
let spaceServiceProxy = SpaceServiceProxyMock(.init())
|
||||
spaceServiceProxy.spaceRoomListSpaceIDClosure = { [mockSpaceRooms] spaceID in
|
||||
guard let spaceRoomProxy = mockSpaceRooms.first(where: { $0.id == spaceID }) else { return .failure(.missingSpace) }
|
||||
return .success(SpaceRoomListProxyMock(.init(spaceRoomProxy: spaceRoomProxy)))
|
||||
guard let spaceServiceRoom = mockSpaceRooms.first(where: { $0.id == spaceID }) else { return .failure(.missingSpace) }
|
||||
return .success(SpaceRoomListProxyMock(.init(spaceServiceRoom: spaceServiceRoom)))
|
||||
}
|
||||
let rustLeaveHandle = LeaveSpaceHandleSDKMock(.init())
|
||||
spaceServiceProxy.leaveSpaceSpaceIDClosure = { spaceID in
|
||||
|
||||
Reference in New Issue
Block a user