Make the SpaceRoomListProxy publish its SpaceRoomProxy updates. (#4607)

Also removes an unused `parent` parameter that was missed when removing the parent name and includes some regenerated snapshots that were missed in the last PR.
This commit is contained in:
Doug
2025-10-09 17:22:43 +01:00
committed by GitHub
parent d91b6bdcdd
commit 3e61babc89
24 changed files with 91 additions and 63 deletions

View File

@@ -406,7 +406,7 @@ class HomeScreenViewModelTests: XCTestCase {
clientProxy.roomForIdentifierClosure = { spaceID in .invited(InvitedRoomProxyMock(.init(id: spaceID, isSpace: true))) }
let spaceServiceProxy = SpaceServiceProxyMock(.init())
spaceServiceProxy.spaceRoomListSpaceIDParentClosure = { spaceID, _ in
spaceServiceProxy.spaceRoomListSpaceIDClosure = { spaceID in
.success(SpaceRoomListProxyMock(.init(spaceRoomProxy: SpaceRoomProxyMock(.init(id: spaceID, isSpace: true)))))
}
clientProxy.underlyingSpaceService = spaceServiceProxy
@@ -454,7 +454,7 @@ extension HomeScreenViewModelAction: @retroactive Equatable {
case (.presentDeclineAndBlock(let lhsUserID, let lhsRoomID), .presentDeclineAndBlock(let rhsUserID, let rhsRoomID)):
lhsUserID == rhsUserID && lhsRoomID == rhsRoomID
case (.presentSpace(let lhsSpaceRoomListProxy), .presentSpace(let rhsSpaceRoomListProxy)):
lhsSpaceRoomListProxy.spaceRoomProxy.id == rhsSpaceRoomListProxy.spaceRoomProxy.id
lhsSpaceRoomListProxy.id == rhsSpaceRoomListProxy.id
case (.roomLeft(let lhsID), .roomLeft(let rhsID)):
lhsID == rhsID
case (.transferOwnership(let lhsID), .transferOwnership(let rhsID)):

View File

@@ -208,7 +208,7 @@ extension JoinRoomScreenViewModelAction: @retroactive Equatable {
case (.joined(.roomID(let lhsRoomID)), .joined(.roomID(let rhsRoomID))):
lhsRoomID == rhsRoomID
case (.joined(.space(let lhsSpace)), .joined(.space(let rhsSpace))):
lhsSpace.spaceRoomProxy.id == rhsSpace.spaceRoomProxy.id
lhsSpace.id == rhsSpace.id
case (.dismiss, .dismiss):
true
case (.presentDeclineAndBlock(let lhsUserID), .presentDeclineAndBlock(let rhsUserID)):

View File

@@ -61,7 +61,7 @@ class SpaceListScreenViewModelTests: XCTestCase {
let action = try await deferred.fulfill()
switch action {
case .selectSpace(let spaceRoomListProxy) where spaceRoomListProxy.spaceRoomProxy.id == selectedSpace.id:
case .selectSpace(let spaceRoomListProxy) where spaceRoomListProxy.id == selectedSpace.id:
break
default:
XCTFail("The action should select the space.")
@@ -102,7 +102,7 @@ class SpaceListScreenViewModelTests: XCTestCase {
])
spaceServiceProxy = SpaceServiceProxyMock(.init())
spaceServiceProxy.joinedSpacesPublisher = joinedSpacesSubject.asCurrentValuePublisher()
spaceServiceProxy.spaceRoomListSpaceIDParentClosure = { [joinedSpacesSubject] spaceID, _ in
spaceServiceProxy.spaceRoomListSpaceIDClosure = { [joinedSpacesSubject] spaceID in
guard let spaceRoomProxy = joinedSpacesSubject?.value.first(where: { $0.id == spaceID }) else { return .failure(.missingSpace) }
return .success(SpaceRoomListProxyMock(.init(spaceRoomProxy: spaceRoomProxy)))
}

View File

@@ -100,7 +100,7 @@ class SpaceScreenViewModelTests: XCTestCase {
let action = try await deferred.fulfill()
switch action {
case .selectSpace(let spaceRoomListProxy) where spaceRoomListProxy.spaceRoomProxy.id == selectedSpace.id:
case .selectSpace(let spaceRoomListProxy) where spaceRoomListProxy.id == selectedSpace.id:
break
default:
XCTFail("The action should select the space.")
@@ -202,7 +202,7 @@ class SpaceScreenViewModelTests: XCTestCase {
XCTAssertNil(context.leaveHandle)
XCTAssertTrue(rustLeaveHandle.leaveRoomIdsCalled)
XCTAssertEqual(rustLeaveHandle.leaveRoomIdsReceivedRoomIds,
[firstSelectedRoom.spaceRoomProxy.id, spaceRoomListProxy.spaceRoomProxy.id],
[firstSelectedRoom.spaceRoomProxy.id, spaceRoomListProxy.id],
"Confirming the leave should first leave the selected room and then the space.")
}
@@ -214,7 +214,7 @@ class SpaceScreenViewModelTests: XCTestCase {
paginationResponses: paginationResponses))
let spaceServiceProxy = SpaceServiceProxyMock(.init())
spaceServiceProxy.spaceRoomListSpaceIDParentClosure = { [mockSpaceRooms] spaceID, _ in
spaceServiceProxy.spaceRoomListSpaceIDClosure = { [mockSpaceRooms] spaceID in
guard let spaceRoomProxy = mockSpaceRooms.first(where: { $0.id == spaceID }) else { return .failure(.missingSpace) }
return .success(SpaceRoomListProxyMock(.init(spaceRoomProxy: spaceRoomProxy)))
}