Refactor SpaceServiceProxy.joinedSpaces to topLevelSpaces.
This commit is contained in:
@@ -261,7 +261,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
let space = singleRoom[0]
|
||||
let allSpaces = joinedParentSpaces + singleRoom
|
||||
setupViewModel(joinedParentSpaces: joinedParentSpaces,
|
||||
joinedSpaces: allSpaces,
|
||||
topLevelSpaces: allSpaces,
|
||||
joinRule: .restricted(rules: [.roomMembership(roomId: space.id),
|
||||
.roomMembership(roomId: "unknownSpaceID")]))
|
||||
|
||||
@@ -425,7 +425,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
// MARK: - Helpers
|
||||
|
||||
private func setupViewModel(joinedParentSpaces: [SpaceRoomProxyProtocol],
|
||||
joinedSpaces: [SpaceRoomProxyProtocol] = [],
|
||||
topLevelSpaces: [SpaceRoomProxyProtocol] = [],
|
||||
joinRule: JoinRule) {
|
||||
let appSettings = AppSettings()
|
||||
appSettings.spaceSettingsEnabled = true
|
||||
@@ -440,7 +440,7 @@ class SecurityAndPrivacyScreenViewModelTests: XCTestCase {
|
||||
|
||||
viewModel = SecurityAndPrivacyScreenViewModel(roomProxy: roomProxy,
|
||||
clientProxy: ClientProxyMock(.init(userIDServerName: "matrix.org",
|
||||
spaceServiceConfiguration: .init(joinedSpaces: joinedSpaces,
|
||||
spaceServiceConfiguration: .init(topLevelSpaces: topLevelSpaces,
|
||||
joinedParentSpaces: joinedParentSpaces))),
|
||||
userIndicatorController: UserIndicatorControllerMock(),
|
||||
appSettings: appSettings)
|
||||
|
||||
@@ -13,7 +13,7 @@ import XCTest
|
||||
|
||||
@MainActor
|
||||
class SpaceListScreenViewModelTests: XCTestCase {
|
||||
var joinedSpacesSubject: CurrentValueSubject<[SpaceRoomProxyProtocol], Never>!
|
||||
var topLevelSpacesSubject: CurrentValueSubject<[SpaceRoomProxyProtocol], Never>!
|
||||
var spaceServiceProxy: SpaceServiceProxyMock!
|
||||
var appSettings: AppSettings!
|
||||
|
||||
@@ -34,29 +34,29 @@ class SpaceListScreenViewModelTests: XCTestCase {
|
||||
|
||||
func testInitialState() {
|
||||
setupViewModel()
|
||||
XCTAssertEqual(context.viewState.joinedSpaces.count, 3)
|
||||
XCTAssertEqual(context.viewState.topLevelSpaces.count, 3)
|
||||
}
|
||||
|
||||
func testJoinedSpacesSubscription() async throws {
|
||||
func testTopLevelSpacesSubscription() async throws {
|
||||
setupViewModel()
|
||||
|
||||
var deferred = deferFulfillment(context.observe(\.viewState.joinedSpaces)) { $0.count == 0 }
|
||||
joinedSpacesSubject.send([])
|
||||
var deferred = deferFulfillment(context.observe(\.viewState.topLevelSpaces)) { $0.count == 0 }
|
||||
topLevelSpacesSubject.send([])
|
||||
try await deferred.fulfill()
|
||||
XCTAssertEqual(context.viewState.joinedSpaces.count, 0)
|
||||
XCTAssertEqual(context.viewState.topLevelSpaces.count, 0)
|
||||
|
||||
deferred = deferFulfillment(context.observe(\.viewState.joinedSpaces)) { $0.count == 1 }
|
||||
joinedSpacesSubject.send([
|
||||
deferred = deferFulfillment(context.observe(\.viewState.topLevelSpaces)) { $0.count == 1 }
|
||||
topLevelSpacesSubject.send([
|
||||
SpaceRoomProxyMock(.init(isSpace: true))
|
||||
])
|
||||
try await deferred.fulfill()
|
||||
XCTAssertEqual(context.viewState.joinedSpaces.count, 1)
|
||||
XCTAssertEqual(context.viewState.topLevelSpaces.count, 1)
|
||||
}
|
||||
|
||||
func testSelectingSpace() async throws {
|
||||
setupViewModel()
|
||||
|
||||
let selectedSpace = joinedSpacesSubject.value[0]
|
||||
let selectedSpace = topLevelSpacesSubject.value[0]
|
||||
let deferred = deferFulfillment(viewModel.actionsPublisher) { _ in true }
|
||||
viewModel.context.send(viewAction: .spaceAction(.select(selectedSpace)))
|
||||
let action = try await deferred.fulfill()
|
||||
@@ -96,15 +96,15 @@ class SpaceListScreenViewModelTests: XCTestCase {
|
||||
let clientProxy = ClientProxyMock(.init())
|
||||
let userSession = UserSessionMock(.init(clientProxy: clientProxy))
|
||||
|
||||
joinedSpacesSubject = .init([
|
||||
topLevelSpacesSubject = .init([
|
||||
SpaceRoomProxyMock(.init(id: "space1", isSpace: true)),
|
||||
SpaceRoomProxyMock(.init(id: "space2", isSpace: true)),
|
||||
SpaceRoomProxyMock(.init(id: "space3", isSpace: true))
|
||||
])
|
||||
spaceServiceProxy = SpaceServiceProxyMock(.init())
|
||||
spaceServiceProxy.joinedSpacesPublisher = joinedSpacesSubject.asCurrentValuePublisher()
|
||||
spaceServiceProxy.spaceRoomListSpaceIDClosure = { [joinedSpacesSubject] spaceID in
|
||||
guard let spaceRoomProxy = joinedSpacesSubject?.value.first(where: { $0.id == spaceID }) else { return .failure(.missingSpace) }
|
||||
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)))
|
||||
}
|
||||
clientProxy.spaceService = spaceServiceProxy
|
||||
|
||||
Reference in New Issue
Block a user