diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index 76063ea04..c1e2b448f 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -416,6 +416,7 @@ 652ACCF104A8CEF30788963C /* NotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1423AB065857FA546444DB15 /* NotificationManager.swift */; }; 6530865EB9A8C0F0AF0216DA /* ServerSelectionScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9501D11B4258DFA33BA3B40F /* ServerSelectionScreenModels.swift */; }; 654E802C127B84554042903E /* AnalyticsSettingsScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECD5FCBA169B6A82F501CA1B /* AnalyticsSettingsScreenViewModelProtocol.swift */; }; + 6586E1F1D5F0651D0638FFAF /* UserSessionMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4469F6AE311BDC439B3A5EC /* UserSessionMock.swift */; }; 659E5B766F76FDEC1BF393A4 /* RoomDetailsEditScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E413F4CBD7BF0588F394A9DD /* RoomDetailsEditScreenViewModel.swift */; }; 663E198678778F7426A9B27D /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9FAFE1C2149E6AC8156ED2B /* Collection.swift */; }; 67160204A8D362BB7D4AD259 /* Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 693E16574C6F7F9FA1015A8C /* Search.swift */; }; @@ -902,7 +903,6 @@ D6661A94DBD97658B2ADBD6A /* MapTilerStaticMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A4D29F2683F5772AC72406F /* MapTilerStaticMap.swift */; }; D6DE764B17FB4A9A12C33BF4 /* MessageComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F1DF3FFFE5ED2B8133F43A7 /* MessageComposer.swift */; }; D7CDBAE82782BD0529DECB5F /* AttributedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52BD6ED18E2EB61E28C340AD /* AttributedString.swift */; }; - D8359F67AF3A83516E9083C1 /* MockUserSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4756C5A8C8649AD6C10C615 /* MockUserSession.swift */; }; D876EC0FED3B6D46C806912A /* AvatarSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = E24B88AD3D1599E8CB1376E0 /* AvatarSize.swift */; }; D9473FC9B077A6EDB7A12001 /* LocationRoomTimelineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 772334731A8BF8E6D90B194D /* LocationRoomTimelineView.swift */; }; D98B5EE8C4F5A2CE84687AE8 /* UTType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 897DF5E9A70CE05A632FC8AF /* UTType.swift */; }; @@ -1765,7 +1765,6 @@ A40F1985065500F0E7F61A27 /* PollFormScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollFormScreenViewModelProtocol.swift; sourceTree = ""; }; A433BE28B40D418237BE37B5 /* ReportContentScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportContentScreen.swift; sourceTree = ""; }; A436057DBEA1A23CA8CB1FD7 /* UIFont+AttributedStringBuilder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIFont+AttributedStringBuilder.h"; sourceTree = ""; }; - A4756C5A8C8649AD6C10C615 /* MockUserSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserSession.swift; sourceTree = ""; }; A58E93D91DE3288010390DEE /* EmojiDetectionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiDetectionTests.swift; sourceTree = ""; }; A65F140F9FE5E8D4DAEFF354 /* RoomProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomProxy.swift; sourceTree = ""; }; A6B891A6DA826E2461DBB40F /* PHGPostHogConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PHGPostHogConfiguration.swift; sourceTree = ""; }; @@ -2101,6 +2100,7 @@ F36C0A6D59717193F49EA986 /* UserSessionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionTests.swift; sourceTree = ""; }; F37FA1A5D55633E1942B153B /* CallScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallScreenCoordinator.swift; sourceTree = ""; }; F3EAE3E9D5EF4A6D5D9C6CFD /* EmojiPickerScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPickerScreenViewModel.swift; sourceTree = ""; }; + F4469F6AE311BDC439B3A5EC /* UserSessionMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSessionMock.swift; sourceTree = ""; }; F4548A9BDE5CB3AB864BCA9F /* EffectsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EffectsView.swift; sourceTree = ""; }; F506C6ADB1E1DA6638078E11 /* UITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; F5311C989EC15B4C2D699025 /* StaticLocationScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticLocationScreenViewModel.swift; sourceTree = ""; }; @@ -2669,6 +2669,7 @@ 248649EBA5BC33DB93698734 /* SessionVerificationControllerProxyMock.swift */, 7893780A1FD6E3F38B3E9049 /* UserIndicatorControllerMock.swift */, AAD01F7FC2BBAC7351948595 /* UserProfile+Mock.swift */, + F4469F6AE311BDC439B3A5EC /* UserSessionMock.swift */, B23135B06B044CB811139D2F /* Generated */, E5E545F92D01588360A9BAC5 /* SDK */, ); @@ -3847,7 +3848,6 @@ 82D5AD3EAE3A5C1068A44A88 /* Session */ = { isa = PBXGroup; children = ( - A4756C5A8C8649AD6C10C615 /* MockUserSession.swift */, 6E5E9C044BEB7C70B1378E91 /* UserSession.swift */, 5F4134FEFE4EB55759017408 /* UserSessionProtocol.swift */, ); @@ -6147,7 +6147,6 @@ 09C83DDDB07C28364F325209 /* MockRoomTimelineController.swift in Sources */, B721125D17A0BA86794F29FB /* MockServerSelectionScreenState.swift in Sources */, AF2ABA2794E376B64104C964 /* MockSoftLogoutScreenState.swift in Sources */, - D8359F67AF3A83516E9083C1 /* MockUserSession.swift in Sources */, F9842667B68DC6FA1F9ECCBB /* NSItemProvider.swift in Sources */, EA01A06EEDFEF4AE7652E5F3 /* NSRegularExpresion.swift in Sources */, FA2BBAE9FC5E2E9F960C0980 /* NavigationCoordinators.swift in Sources */, @@ -6542,6 +6541,7 @@ 8AB8ED1051216546CB35FA0E /* UserSession.swift in Sources */, 4A618590DEB72C4F186BFED4 /* UserSessionFlowCoordinator.swift in Sources */, 3113065AABBC14CEAE6843FA /* UserSessionFlowCoordinatorStateMachine.swift in Sources */, + 6586E1F1D5F0651D0638FFAF /* UserSessionMock.swift in Sources */, 978BB24F2A5D31EE59EEC249 /* UserSessionProtocol.swift in Sources */, 7E91BAC17963ED41208F489B /* UserSessionStore.swift in Sources */, AC69B6DF15FC451AB2945036 /* UserSessionStoreProtocol.swift in Sources */, diff --git a/ElementX/Sources/Mocks/ClientProxyMock.swift b/ElementX/Sources/Mocks/ClientProxyMock.swift index e6d24082d..e072dbbe5 100644 --- a/ElementX/Sources/Mocks/ClientProxyMock.swift +++ b/ElementX/Sources/Mocks/ClientProxyMock.swift @@ -96,9 +96,9 @@ extension ClientProxyMock { switch room { case .empty: - return await RoomProxyMock(with: .init(name: "Empty room")) + return await RoomProxyMock(.init(name: "Empty room")) case .filled(let details), .invalidated(let details): - return await RoomProxyMock(with: .init(id: roomID, name: details.name)) + return await RoomProxyMock(.init(id: roomID, name: details.name)) } } } diff --git a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift index 3db9ea9d0..15973be29 100644 --- a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift +++ b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift @@ -13079,6 +13079,34 @@ class UserNotificationCenterMock: UserNotificationCenterProtocol { } } } +class UserSessionMock: UserSessionProtocol { + var clientProxy: ClientProxyProtocol { + get { return underlyingClientProxy } + set(value) { underlyingClientProxy = value } + } + var underlyingClientProxy: ClientProxyProtocol! + var mediaProvider: MediaProviderProtocol { + get { return underlyingMediaProvider } + set(value) { underlyingMediaProvider = value } + } + var underlyingMediaProvider: MediaProviderProtocol! + var voiceMessageMediaManager: VoiceMessageMediaManagerProtocol { + get { return underlyingVoiceMessageMediaManager } + set(value) { underlyingVoiceMessageMediaManager = value } + } + var underlyingVoiceMessageMediaManager: VoiceMessageMediaManagerProtocol! + var sessionSecurityStatePublisher: CurrentValuePublisher { + get { return underlyingSessionSecurityStatePublisher } + set(value) { underlyingSessionSecurityStatePublisher = value } + } + var underlyingSessionSecurityStatePublisher: CurrentValuePublisher! + var callbacks: PassthroughSubject { + get { return underlyingCallbacks } + set(value) { underlyingCallbacks = value } + } + var underlyingCallbacks: PassthroughSubject! + +} class VoiceMessageCacheMock: VoiceMessageCacheProtocol { var urlForRecording: URL { get { return underlyingUrlForRecording } diff --git a/ElementX/Sources/Mocks/RoomProxyMock.swift b/ElementX/Sources/Mocks/RoomProxyMock.swift index b38ad43aa..8bca4d7fc 100644 --- a/ElementX/Sources/Mocks/RoomProxyMock.swift +++ b/ElementX/Sources/Mocks/RoomProxyMock.swift @@ -58,7 +58,7 @@ enum RoomProxyMockError: Error { extension RoomProxyMock { @MainActor - convenience init(with configuration: RoomProxyMockConfiguration) { + convenience init(_ configuration: RoomProxyMockConfiguration) { self.init() id = configuration.id diff --git a/ElementX/Sources/Services/Session/MockUserSession.swift b/ElementX/Sources/Mocks/UserSessionMock.swift similarity index 58% rename from ElementX/Sources/Services/Session/MockUserSession.swift rename to ElementX/Sources/Mocks/UserSessionMock.swift index af7306d15..a3be8e1eb 100644 --- a/ElementX/Sources/Services/Session/MockUserSession.swift +++ b/ElementX/Sources/Mocks/UserSessionMock.swift @@ -1,5 +1,5 @@ // -// Copyright 2022 New Vector Ltd +// Copyright 2024 New Vector Ltd // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,15 +15,25 @@ // import Combine +import Foundation -struct MockUserSession: UserSessionProtocol { - let callbacks = PassthroughSubject() +struct UserSessionMockConfiguration { var sessionVerificationController: SessionVerificationControllerProxyProtocol? - var userID: String { clientProxy.userID } - var deviceID: String? { clientProxy.deviceID } - var homeserver: String { clientProxy.homeserver } let clientProxy: ClientProxyProtocol - let mediaProvider: MediaProviderProtocol - let voiceMessageMediaManager: VoiceMessageMediaManagerProtocol - var sessionSecurityStatePublisher = CurrentValueSubject(.init(verificationState: .verified, recoveryState: .enabled)).asCurrentValuePublisher() +} + +extension UserSessionMock { + convenience init(_ configuration: UserSessionMockConfiguration) { + self.init() + + clientProxy = configuration.clientProxy + userID = clientProxy.userID + deviceID = clientProxy.deviceID + homeserver = clientProxy.homeserver + + mediaProvider = MockMediaProvider() + voiceMessageMediaManager = VoiceMessageMediaManagerMock() + + sessionSecurityStatePublisher = CurrentValueSubject(.init(verificationState: .verified, recoveryState: .enabled)).asCurrentValuePublisher() + } } diff --git a/ElementX/Sources/Other/SwiftUI/Animation/ShimmerModifier.swift b/ElementX/Sources/Other/SwiftUI/Animation/ShimmerModifier.swift index 0a0ccfff0..3fb38e371 100644 --- a/ElementX/Sources/Other/SwiftUI/Animation/ShimmerModifier.swift +++ b/ElementX/Sources/Other/SwiftUI/Animation/ShimmerModifier.swift @@ -76,9 +76,7 @@ extension View { } struct ShimmerOverlay_Previews: PreviewProvider, TestablePreview { - static let viewModel = HomeScreenViewModel(userSession: MockUserSession(clientProxy: ClientProxyMock(.init(userID: "")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()), + static let viewModel = HomeScreenViewModel(userSession: UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "")))), analyticsService: ServiceLocator.shared.analytics, appSettings: ServiceLocator.shared.settings, selectedRoomPublisher: CurrentValueSubject(nil).asCurrentValuePublisher(), diff --git a/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitlistScreen.swift b/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitlistScreen.swift index 8f0440cbd..36b8ba242 100644 --- a/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitlistScreen.swift +++ b/ElementX/Sources/Screens/Authentication/WaitlistScreen/View/WaitlistScreen.swift @@ -74,9 +74,7 @@ struct WaitlistScreen_Previews: PreviewProvider, TestablePreview { static let viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg) static let successViewModel = { let viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg) - viewModel.update(userSession: MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@alice:matrix.org")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock())) + viewModel.update(userSession: UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:matrix.org"))))) return viewModel }() diff --git a/ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift b/ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift index 123cbc937..291fac33e 100644 --- a/ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift +++ b/ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift @@ -175,9 +175,7 @@ struct CreateRoomScreen: View { struct CreateRoom_Previews: PreviewProvider, TestablePreview { static let viewModel = { - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@userid:example.com")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@userid:example.com")))) let parameters = CreateRoomFlowParameters() let selectedUsers: [UserProfileProxy] = [.mockAlice, .mockBob, .mockCharlie] @@ -189,9 +187,7 @@ struct CreateRoom_Previews: PreviewProvider, TestablePreview { }() static let emtpyViewModel = { - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@userid:example.com")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@userid:example.com")))) let parameters = CreateRoomFlowParameters() return CreateRoomViewModel(userSession: userSession, createRoomParameters: .init(parameters), diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreen.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreen.swift index bedbacb36..4cd3a488a 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreen.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreen.swift @@ -245,9 +245,7 @@ struct HomeScreen_Previews: PreviewProvider, TestablePreview { let clientProxy = ClientProxyMock(.init(userID: userID, roomSummaryProvider: RoomSummaryProviderMock(.init(state: roomSummaryProviderState)))) - let userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: clientProxy)) return HomeScreenViewModel(userSession: userSession, analyticsService: ServiceLocator.shared.analytics, diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenEmptyStateView.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenEmptyStateView.swift index e724f8a64..b9ae45a6b 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenEmptyStateView.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenEmptyStateView.swift @@ -149,10 +149,8 @@ struct HomeScreenEmptyStateView_Previews: PreviewProvider, TestablePreview { } static let viewModel = { - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@user:example.com", - roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded([]))))), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@user:example.com", + roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded([]))))))) return HomeScreenViewModel(userSession: userSession, analyticsService: ServiceLocator.shared.analytics, diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenInviteCell.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenInviteCell.swift index 5bccdc96b..3e6022dea 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenInviteCell.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenInviteCell.swift @@ -191,9 +191,7 @@ struct HomeScreenInviteCell_Previews: PreviewProvider, TestablePreview { static func viewModel() -> HomeScreenViewModel { let clientProxy = ClientProxyMock(.init()) - let userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: clientProxy)) return HomeScreenViewModel(userSession: userSession, analyticsService: ServiceLocator.shared.analytics, diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRecoveryKeyConfirmationBanner.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRecoveryKeyConfirmationBanner.swift index fc5f5df26..55371fbe2 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRecoveryKeyConfirmationBanner.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRecoveryKeyConfirmationBanner.swift @@ -68,9 +68,7 @@ struct HomeScreenRecoveryKeyConfirmationBanner_Previews: PreviewProvider, Testab let clientProxy = ClientProxyMock(.init(userID: "@alice:example.com", roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loading)))) - let userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: clientProxy)) return HomeScreenViewModel(userSession: userSession, analyticsService: ServiceLocator.shared.analytics, diff --git a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRoomCell.swift b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRoomCell.swift index f756c9cc3..447b18a50 100644 --- a/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRoomCell.swift +++ b/ElementX/Sources/Screens/HomeScreen/View/HomeScreenRoomCell.swift @@ -176,9 +176,7 @@ private extension View { struct HomeScreenRoomCell_Previews: PreviewProvider, TestablePreview { static let summaryProviderGeneric = RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))) static let viewModelGeneric = { - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "John Doe", roomSummaryProvider: summaryProviderGeneric)), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe", roomSummaryProvider: summaryProviderGeneric)))) return HomeScreenViewModel(userSession: userSession, analyticsService: ServiceLocator.shared.analytics, @@ -189,9 +187,7 @@ struct HomeScreenRoomCell_Previews: PreviewProvider, TestablePreview { static let summaryProviderForNotificationsState = RoomSummaryProviderMock(.init(state: .loaded(.mockRoomsWithNotificationsState))) static let viewModelForNotificationsState = { - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "John Doe", roomSummaryProvider: summaryProviderForNotificationsState)), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe", roomSummaryProvider: summaryProviderForNotificationsState)))) return HomeScreenViewModel(userSession: userSession, analyticsService: ServiceLocator.shared.analytics, diff --git a/ElementX/Sources/Screens/MessageForwardingScreen/View/MessageForwardingScreen.swift b/ElementX/Sources/Screens/MessageForwardingScreen/View/MessageForwardingScreen.swift index 0205816bb..a451af930 100644 --- a/ElementX/Sources/Screens/MessageForwardingScreen/View/MessageForwardingScreen.swift +++ b/ElementX/Sources/Screens/MessageForwardingScreen/View/MessageForwardingScreen.swift @@ -107,7 +107,7 @@ struct MessageForwardingScreen_Previews: PreviewProvider, TestablePreview { let viewModel = MessageForwardingScreenViewModel(forwardingItem: .init(id: .init(timelineID: ""), roomID: "", content: .init(noPointer: .init())), - clientProxy: ClientProxyMock(), + clientProxy: ClientProxyMock(.init()), roomSummaryProvider: summaryProvider, userIndicatorController: UserIndicatorControllerMock(), mediaProvider: MockMediaProvider()) diff --git a/ElementX/Sources/Screens/Onboarding/IdentityConfirmationScreen/View/IdentityConfirmationScreen.swift b/ElementX/Sources/Screens/Onboarding/IdentityConfirmationScreen/View/IdentityConfirmationScreen.swift index 3e231d9f2..b4e4ba045 100644 --- a/ElementX/Sources/Screens/Onboarding/IdentityConfirmationScreen/View/IdentityConfirmationScreen.swift +++ b/ElementX/Sources/Screens/Onboarding/IdentityConfirmationScreen/View/IdentityConfirmationScreen.swift @@ -115,10 +115,8 @@ struct IdentityConfirmationScreen_Previews: PreviewProvider, TestablePreview { } private static var viewModel: IdentityConfirmationScreenViewModel { - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@user:example.com", - roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded([]))))), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@user:example.com", + roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded([]))))))) return IdentityConfirmationScreenViewModel(userSession: userSession, appSettings: ServiceLocator.shared.settings, diff --git a/ElementX/Sources/Screens/ReportContentScreen/View/ReportContentScreen.swift b/ElementX/Sources/Screens/ReportContentScreen/View/ReportContentScreen.swift index 6e43c6070..9d582b67a 100644 --- a/ElementX/Sources/Screens/ReportContentScreen/View/ReportContentScreen.swift +++ b/ElementX/Sources/Screens/ReportContentScreen/View/ReportContentScreen.swift @@ -77,7 +77,7 @@ struct ReportContentScreen: View { struct ReportContentScreen_Previews: PreviewProvider, TestablePreview { static let viewModel = ReportContentScreenViewModel(eventID: "", senderID: "", - roomProxy: RoomProxyMock(with: .init()), + roomProxy: RoomProxyMock(.init()), clientProxy: ClientProxyMock(.init())) static var previews: some View { diff --git a/ElementX/Sources/Screens/RoomChangePermissionsScreen/View/RoomChangePermissionsScreen.swift b/ElementX/Sources/Screens/RoomChangePermissionsScreen/View/RoomChangePermissionsScreen.swift index 6cab5e086..b89e2fa85 100644 --- a/ElementX/Sources/Screens/RoomChangePermissionsScreen/View/RoomChangePermissionsScreen.swift +++ b/ElementX/Sources/Screens/RoomChangePermissionsScreen/View/RoomChangePermissionsScreen.swift @@ -86,7 +86,7 @@ struct RoomChangePermissionsScreen_Previews: PreviewProvider, TestablePreview { static func makeViewModel(group: RoomRolesAndPermissionsScreenPermissionsGroup) -> RoomChangePermissionsScreenViewModel { RoomChangePermissionsScreenViewModel(currentPermissions: .init(powerLevels: .mock), group: group, - roomProxy: RoomProxyMock(with: .init()), + roomProxy: RoomProxyMock(.init()), userIndicatorController: UserIndicatorControllerMock(), analytics: ServiceLocator.shared.analytics) } diff --git a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift index 7dbd943b0..16dd20ad7 100644 --- a/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift +++ b/ElementX/Sources/Screens/RoomChangeRolesScreen/View/RoomChangeRolesScreen.swift @@ -132,7 +132,7 @@ struct RoomChangeRolesScreen_Previews: PreviewProvider, TestablePreview { static func makeViewModel(mode: RoomMemberDetails.Role) -> RoomChangeRolesScreenViewModel { RoomChangeRolesScreenViewModel(mode: mode, - roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)), + roomProxy: RoomProxyMock(.init(members: .allMembersAsAdmin)), mediaProvider: MockMediaProvider(), userIndicatorController: UserIndicatorControllerMock(), analytics: ServiceLocator.shared.analytics) diff --git a/ElementX/Sources/Screens/RoomDetailsEditScreen/View/RoomDetailsEditScreen.swift b/ElementX/Sources/Screens/RoomDetailsEditScreen/View/RoomDetailsEditScreen.swift index fffd2bc57..4266bb808 100644 --- a/ElementX/Sources/Screens/RoomDetailsEditScreen/View/RoomDetailsEditScreen.swift +++ b/ElementX/Sources/Screens/RoomDetailsEditScreen/View/RoomDetailsEditScreen.swift @@ -157,9 +157,9 @@ struct RoomDetailsEditScreen: View { struct RoomDetailsEditScreen_Previews: PreviewProvider, TestablePreview { static let editableViewModel = { - let roomProxy = RoomProxyMock(with: .init(id: "test_id", - name: "Room", - members: [.mockMeAdmin])) + let roomProxy = RoomProxyMock(.init(id: "test_id", + name: "Room", + members: [.mockMeAdmin])) return RoomDetailsEditScreenViewModel(roomProxy: roomProxy, mediaProvider: MockMediaProvider(), @@ -167,9 +167,9 @@ struct RoomDetailsEditScreen_Previews: PreviewProvider, TestablePreview { }() static let readOnlyViewModel = { - let roomProxy = RoomProxyMock(with: .init(id: "test_id", - name: "Room", - members: [.mockAlice])) + let roomProxy = RoomProxyMock(.init(id: "test_id", + name: "Room", + members: [.mockAlice])) return RoomDetailsEditScreenViewModel(roomProxy: roomProxy, mediaProvider: MockMediaProvider(), diff --git a/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift b/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift index 1cbe00add..183bd185b 100644 --- a/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift +++ b/ElementX/Sources/Screens/RoomDetailsScreen/View/RoomDetailsScreen.swift @@ -301,20 +301,20 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { .mockBob, .mockCharlie ] - let roomProxy = RoomProxyMock(with: .init(id: "room_a_id", - name: "Room A", - topic: """ - Discussions about Element X iOS | https://github.com/vector-im/element-x-ios - - Feature Status: https://github.com/vector-im/element-x-ios/issues/1225 - - App Store: https://apple.co/3r6LJHZ - TestFlight: https://testflight.apple.com/join/uZbeZCOi - """, - isDirect: false, - isEncrypted: true, - canonicalAlias: "#alias:domain.com", - members: members)) + let roomProxy = RoomProxyMock(.init(id: "room_a_id", + name: "Room A", + topic: """ + Discussions about Element X iOS | https://github.com/vector-im/element-x-ios + + Feature Status: https://github.com/vector-im/element-x-ios/issues/1225 + + App Store: https://apple.co/3r6LJHZ + TestFlight: https://testflight.apple.com/join/uZbeZCOi + """, + isDirect: false, + isEncrypted: true, + canonicalAlias: "#alias:domain.com", + members: members)) var notificationSettingsProxyMockConfiguration = NotificationSettingsProxyMockConfiguration() notificationSettingsProxyMockConfiguration.roomMode.isDefault = false @@ -336,13 +336,13 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { .mockDan ] - let roomProxy = RoomProxyMock(with: .init(id: "dm_room_id", - name: "DM Room", - topic: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", - isDirect: true, - isEncrypted: true, - canonicalAlias: "#alias:domain.com", - members: members)) + let roomProxy = RoomProxyMock(.init(id: "dm_room_id", + name: "DM Room", + topic: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", + isDirect: true, + isEncrypted: true, + canonicalAlias: "#alias:domain.com", + members: members)) let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init()) let appSettings = AppSettings() @@ -362,11 +362,11 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview { .mockBob, .mockCharlie ] - let roomProxy = RoomProxyMock(with: .init(id: "simple_room_id", - name: "Room A", - isDirect: false, - isEncrypted: false, - members: members)) + let roomProxy = RoomProxyMock(.init(id: "simple_room_id", + name: "Room A", + isDirect: false, + isEncrypted: false, + members: members)) let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init()) let appSettings = AppSettings() diff --git a/ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift b/ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift index fb9412fce..b9dae5200 100644 --- a/ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift +++ b/ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift @@ -143,7 +143,7 @@ struct RoomMemberDetailsScreen_Previews: PreviewProvider, TestablePreview { } static func makeViewModel(member: RoomMemberProxyMock) -> RoomMemberDetailsScreenViewModel { - let roomProxyMock = RoomProxyMock(with: .init(name: "")) + let roomProxyMock = RoomProxyMock(.init(name: "")) roomProxyMock.getMemberUserIDReturnValue = .success(member) let clientProxyMock = ClientProxyMock(.init()) diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListManageMemberSheet.swift b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListManageMemberSheet.swift index 23bdac4f9..f516409f2 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListManageMemberSheet.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListManageMemberSheet.swift @@ -108,7 +108,7 @@ struct RoomMembersListManageMemberSheetLive_Previews: PreviewProvider { private extension RoomMembersListScreenViewModel { static var mock: RoomMembersListScreenViewModel { RoomMembersListScreenViewModel(initialMode: .members, - roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)), + roomProxy: RoomProxyMock(.init(members: .allMembersAsAdmin)), mediaProvider: MockMediaProvider(), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreen.swift b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreen.swift index 0f16e20d1..ee2ca9c2a 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreen.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreen.swift @@ -179,10 +179,10 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview { } return RoomMembersListScreenViewModel(initialMode: initialMode, - roomProxy: RoomProxyMock(with: .init(name: "Some room", - members: members, - ownUserID: ownUserID, - canUserInvite: false)), + roomProxy: RoomProxyMock(.init(name: "Some room", + members: members, + ownUserID: ownUserID, + canUserInvite: false)), mediaProvider: MockMediaProvider(), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift index 05670bd27..2a6d3dbc1 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift @@ -106,8 +106,8 @@ struct RoomMembersListMemberCell_Previews: PreviewProvider, TestablePreview { .init(with: .init(userID: "@badavatar:matrix.org", avatarURL: .picturesDirectory, membership: .ban)) ] - static let viewModel = RoomMembersListScreenViewModel(roomProxy: RoomProxyMock(with: .init(name: "Some room", - members: members)), + static let viewModel = RoomMembersListScreenViewModel(roomProxy: RoomProxyMock(.init(name: "Some room", + members: members)), mediaProvider: MockMediaProvider(), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics) diff --git a/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsCustomSectionView.swift b/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsCustomSectionView.swift index d8f34bedc..eb70d56af 100644 --- a/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsCustomSectionView.swift +++ b/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsCustomSectionView.swift @@ -42,7 +42,7 @@ struct RoomNotificationSettingsCustomSectionView_Previews: PreviewProvider, Test static let viewModel = { let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .allMessages, roomMode: .mentionsAndKeywordsOnly)) - let roomProxy = RoomProxyMock(with: .init(name: "Room", isEncrypted: true)) + let roomProxy = RoomProxyMock(.init(name: "Room", isEncrypted: true)) return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy, roomProxy: roomProxy, @@ -52,7 +52,7 @@ struct RoomNotificationSettingsCustomSectionView_Previews: PreviewProvider, Test static let viewModelUnencrypted = { let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .allMessages, roomMode: .mentionsAndKeywordsOnly)) - let roomProxy = RoomProxyMock(with: .init(name: "Room", isEncrypted: false)) + let roomProxy = RoomProxyMock(.init(name: "Room", isEncrypted: false)) return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy, roomProxy: roomProxy, diff --git a/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsScreen.swift b/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsScreen.swift index 673ac3cd6..e9c7bdbf6 100644 --- a/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsScreen.swift +++ b/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsScreen.swift @@ -83,7 +83,7 @@ struct RoomNotificationSettingsScreen_Previews: PreviewProvider, TestablePreview static let viewModel = { let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .mentionsAndKeywordsOnly, roomMode: .mentionsAndKeywordsOnly)) - let roomProxy = RoomProxyMock(with: .init(name: "Room", isEncrypted: true)) + let roomProxy = RoomProxyMock(.init(name: "Room", isEncrypted: true)) return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy, roomProxy: roomProxy, @@ -93,7 +93,7 @@ struct RoomNotificationSettingsScreen_Previews: PreviewProvider, TestablePreview static let viewModelCustom = { let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .allMessages, roomMode: .mentionsAndKeywordsOnly)) - let roomProxy = RoomProxyMock(with: .init(name: "Room", isEncrypted: true)) + let roomProxy = RoomProxyMock(.init(name: "Room", isEncrypted: true)) return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy, roomProxy: roomProxy, diff --git a/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsUserDefinedScreen.swift b/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsUserDefinedScreen.swift index 2ce0085a0..932273f91 100644 --- a/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsUserDefinedScreen.swift +++ b/ElementX/Sources/Screens/RoomNotificationSettingsScreen/View/RoomNotificationSettingsUserDefinedScreen.swift @@ -52,7 +52,7 @@ struct RoomNotificationSettingsUserDefinedScreen_Previews: PreviewProvider, Test static let viewModel = { let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .mentionsAndKeywordsOnly, roomMode: .mentionsAndKeywordsOnly)) - let roomProxy = RoomProxyMock(with: .init(name: "Room", isEncrypted: true)) + let roomProxy = RoomProxyMock(.init(name: "Room", isEncrypted: true)) return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy, roomProxy: roomProxy, @@ -62,7 +62,7 @@ struct RoomNotificationSettingsUserDefinedScreen_Previews: PreviewProvider, Test static let viewModelUnencrypted = { let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .mentionsAndKeywordsOnly, roomMode: .mentionsAndKeywordsOnly)) - let roomProxy = RoomProxyMock(with: .init(name: "Room", isEncrypted: false)) + let roomProxy = RoomProxyMock(.init(name: "Room", isEncrypted: false)) return RoomNotificationSettingsScreenViewModel(notificationSettingsProxy: notificationSettingsProxy, roomProxy: roomProxy, diff --git a/ElementX/Sources/Screens/RoomRolesAndPermissionsScreen/View/RoomRolesAndPermissionsScreen.swift b/ElementX/Sources/Screens/RoomRolesAndPermissionsScreen/View/RoomRolesAndPermissionsScreen.swift index 8c29a9711..cb3aef827 100644 --- a/ElementX/Sources/Screens/RoomRolesAndPermissionsScreen/View/RoomRolesAndPermissionsScreen.swift +++ b/ElementX/Sources/Screens/RoomRolesAndPermissionsScreen/View/RoomRolesAndPermissionsScreen.swift @@ -127,7 +127,7 @@ struct RoomRolesAndPermissionsScreen: View { struct RoomRolesAndPermissionsScreen_Previews: PreviewProvider, TestablePreview { static let viewModel = RoomRolesAndPermissionsScreenViewModel(initialPermissions: RoomPermissions(powerLevels: .mock), - roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)), + roomProxy: RoomProxyMock(.init(members: .allMembersAsAdmin)), userIndicatorController: UserIndicatorControllerMock(), analytics: ServiceLocator.shared.analytics) static var previews: some View { diff --git a/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift b/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift index 926fc645a..dbd31fb40 100644 --- a/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift @@ -800,7 +800,7 @@ private extension RoomProxyProtocol { // MARK: - Mocks extension RoomScreenViewModel { - static let mock = RoomScreenViewModel(roomProxy: RoomProxyMock(with: .init(name: "Preview room")), + static let mock = RoomScreenViewModel(roomProxy: RoomProxyMock(.init(name: "Preview room")), focussedEventID: nil, timelineController: MockRoomTimelineController(), mediaProvider: MockMediaProvider(), diff --git a/ElementX/Sources/Screens/RoomScreen/View/ReadReceipts/ReadReceiptsSummaryView.swift b/ElementX/Sources/Screens/RoomScreen/View/ReadReceipts/ReadReceiptsSummaryView.swift index 8d0b0b790..708dfe7d6 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/ReadReceipts/ReadReceiptsSummaryView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/ReadReceipts/ReadReceiptsSummaryView.swift @@ -51,7 +51,7 @@ struct ReadReceiptsSummaryView_Previews: PreviewProvider, TestablePreview { .mockCharlie, .mockDan ] - let roomProxyMock = RoomProxyMock(with: .init(name: "Room", members: members)) + let roomProxyMock = RoomProxyMock(.init(name: "Room", members: members)) let mock = RoomScreenViewModel(roomProxy: roomProxyMock, timelineController: MockRoomTimelineController(), mediaProvider: MockMediaProvider(), diff --git a/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift b/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift index 12335d15e..8a69d6033 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/RoomScreen.swift @@ -184,7 +184,7 @@ struct RoomScreen: View { // MARK: - Previews struct RoomScreen_Previews: PreviewProvider, TestablePreview { - static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(with: .init(name: "Preview room", hasOngoingCall: true)), + static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(.init(name: "Preview room", hasOngoingCall: true)), timelineController: MockRoomTimelineController(), mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), diff --git a/ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineReadReceiptsView.swift b/ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineReadReceiptsView.swift index f171c1e6e..70429079b 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineReadReceiptsView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Supplementary/TimelineReadReceiptsView.swift @@ -90,7 +90,7 @@ struct TimelineReadReceiptsView_Previews: PreviewProvider, TestablePreview { .mockMe ] - static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(with: .init(name: "Test", members: members)), + static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(.init(name: "Test", members: members)), timelineController: MockRoomTimelineController(), mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), diff --git a/ElementX/Sources/Screens/RoomScreen/View/Timeline/HighlightedTimelineItemModifier.swift b/ElementX/Sources/Screens/RoomScreen/View/Timeline/HighlightedTimelineItemModifier.swift index 485c11780..3ef525798 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Timeline/HighlightedTimelineItemModifier.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Timeline/HighlightedTimelineItemModifier.swift @@ -94,7 +94,7 @@ struct HighlightedTimelineItemModifier_Previews: PreviewProvider, TestablePrevie /// A preview that allows quick testing of the highlight appearance across various timeline scenarios. struct HighlightedTimelineItemTimeline_Previews: PreviewProvider { static let focussedEventID = "RoomTimelineItemFixtures.default.5" - static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(with: .init(name: "Preview room")), + static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(.init(name: "Preview room")), focussedEventID: focussedEventID, timelineController: MockRoomTimelineController(), mediaProvider: MockMediaProvider(), diff --git a/ElementX/Sources/Screens/RoomScreen/View/Timeline/TimelineView.swift b/ElementX/Sources/Screens/RoomScreen/View/Timeline/TimelineView.swift index 28be93d3a..a43a4f365 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Timeline/TimelineView.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Timeline/TimelineView.swift @@ -84,7 +84,7 @@ struct TimelineView: UIViewControllerRepresentable { // MARK: - Previews struct TimelineView_Previews: PreviewProvider, TestablePreview { - static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(with: .init(name: "Preview room")), + static let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(.init(name: "Preview room")), timelineController: MockRoomTimelineController(), mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), diff --git a/ElementX/Sources/Screens/Settings/NotificationSettingsEditScreen/View/NotificationSettingsEditScreen.swift b/ElementX/Sources/Screens/Settings/NotificationSettingsEditScreen/View/NotificationSettingsEditScreen.swift index e5bdb2bb7..fa521b5ef 100644 --- a/ElementX/Sources/Screens/Settings/NotificationSettingsEditScreen/View/NotificationSettingsEditScreen.swift +++ b/ElementX/Sources/Screens/Settings/NotificationSettingsEditScreen/View/NotificationSettingsEditScreen.swift @@ -73,10 +73,8 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .allMessages notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = [RoomSummary].mockRooms.compactMap(\.id) - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com", - roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com", + roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))))) var viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat, userSession: userSession, notificationSettingsProxy: notificationSettingsProxy) @@ -88,10 +86,8 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init()) notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .mentionsAndKeywordsOnly notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = [] - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com", - roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com", + roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))))) var viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat, userSession: userSession, notificationSettingsProxy: notificationSettingsProxy) @@ -103,9 +99,7 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init()) notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .mentionsAndKeywordsOnly notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = [] - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "John Doe")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe")))) var viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat, userSession: userSession, @@ -120,10 +114,8 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .allMessages notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = [RoomSummary].mockRooms.compactMap(\.id) - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com", - roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com", + roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))))) var viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat, userSession: userSession, notificationSettingsProxy: notificationSettingsProxy) diff --git a/ElementX/Sources/Screens/Settings/NotificationSettingsEditScreen/View/NotificationSettingsEditScreenRoomCell.swift b/ElementX/Sources/Screens/Settings/NotificationSettingsEditScreen/View/NotificationSettingsEditScreenRoomCell.swift index 20eda253a..d525452c8 100644 --- a/ElementX/Sources/Screens/Settings/NotificationSettingsEditScreen/View/NotificationSettingsEditScreenRoomCell.swift +++ b/ElementX/Sources/Screens/Settings/NotificationSettingsEditScreen/View/NotificationSettingsEditScreenRoomCell.swift @@ -61,9 +61,7 @@ struct NotificationSettingsEditScreenRoomCell_Previews: PreviewProvider, Testabl static var previews: some View { let summaryProvider = RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))) - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "John Doe", roomSummaryProvider: summaryProvider)), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe", roomSummaryProvider: summaryProvider)))) let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init()) notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = [] diff --git a/ElementX/Sources/Screens/Settings/NotificationSettingsScreen/View/NotificationSettingsScreen.swift b/ElementX/Sources/Screens/Settings/NotificationSettingsScreen/View/NotificationSettingsScreen.swift index dc6f762b8..8b78137b7 100644 --- a/ElementX/Sources/Screens/Settings/NotificationSettingsScreen/View/NotificationSettingsScreen.swift +++ b/ElementX/Sources/Screens/Settings/NotificationSettingsScreen/View/NotificationSettingsScreen.swift @@ -222,9 +222,7 @@ struct NotificationSettingsScreen_Previews: PreviewProvider, TestablePreview { notificationSettingsProxy.isRoomMentionEnabledReturnValue = true notificationSettingsProxy.isCallEnabledReturnValue = false - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "John Doe")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe")))) var viewModel = NotificationSettingsScreenViewModel(appSettings: appSettings, userNotificationCenter: notificationCenter, @@ -252,9 +250,7 @@ struct NotificationSettingsScreen_Previews: PreviewProvider, TestablePreview { notificationSettingsProxy.isRoomMentionEnabledReturnValue = true notificationSettingsProxy.isCallEnabledReturnValue = false - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "John Doe")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe")))) var viewModel = NotificationSettingsScreenViewModel(appSettings: appSettings, userNotificationCenter: notificationCenter, diff --git a/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift b/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift index 8558517fd..040d030ac 100644 --- a/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift +++ b/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift @@ -235,11 +235,9 @@ struct SettingsScreen_Previews: PreviewProvider, TestablePreview { static let viewModel = { let verificationController = SessionVerificationControllerProxyMock() verificationController.isVerifiedReturnValue = .success(false) - let userSession = MockUserSession(sessionVerificationController: verificationController, - clientProxy: ClientProxyMock(.init(userID: "@userid:example.com", - deviceID: "AAAAAAAAAAA")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(sessionVerificationController: verificationController, + clientProxy: ClientProxyMock(.init(userID: "@userid:example.com", + deviceID: "AAAAAAAAAAA")))) return SettingsScreenViewModel(userSession: userSession, appSettings: ServiceLocator.shared.settings) }() diff --git a/ElementX/Sources/Screens/StartChatScreen/View/StartChatScreen.swift b/ElementX/Sources/Screens/StartChatScreen/View/StartChatScreen.swift index 63a9c2429..93cf89741 100644 --- a/ElementX/Sources/Screens/StartChatScreen/View/StartChatScreen.swift +++ b/ElementX/Sources/Screens/StartChatScreen/View/StartChatScreen.swift @@ -129,9 +129,7 @@ struct StartChatScreen: View { struct StartChatScreen_Previews: PreviewProvider, TestablePreview { static let viewModel = { - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@userid:example.com")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@userid:example.com")))) let userDiscoveryService = UserDiscoveryServiceMock() userDiscoveryService.searchProfilesWithReturnValue = .success([.mockAlice]) let viewModel = StartChatScreenViewModel(userSession: userSession, diff --git a/ElementX/Sources/Services/Authentication/MockAuthenticationServiceProxy.swift b/ElementX/Sources/Services/Authentication/MockAuthenticationServiceProxy.swift index 7d7f5a00e..af9b150a0 100644 --- a/ElementX/Sources/Services/Authentication/MockAuthenticationServiceProxy.swift +++ b/ElementX/Sources/Services/Authentication/MockAuthenticationServiceProxy.swift @@ -62,9 +62,7 @@ class MockAuthenticationServiceProxy: AuthenticationServiceProxyProtocol { return .failure(.invalidCredentials) } - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: username)), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: username)))) return .success(userSession) } } diff --git a/ElementX/Sources/Services/Session/UserSessionProtocol.swift b/ElementX/Sources/Services/Session/UserSessionProtocol.swift index 1bf27cb19..2cff031f0 100644 --- a/ElementX/Sources/Services/Session/UserSessionProtocol.swift +++ b/ElementX/Sources/Services/Session/UserSessionProtocol.swift @@ -26,6 +26,7 @@ struct SessionSecurityState: Equatable { let recoveryState: SecureBackupRecoveryState } +// sourcery: AutoMockable protocol UserSessionProtocol { var homeserver: String { get } var userID: String { get } diff --git a/ElementX/Sources/UITests/UITestsAppCoordinator.swift b/ElementX/Sources/UITests/UITestsAppCoordinator.swift index 3dfa3e439..6492d7b14 100644 --- a/ElementX/Sources/UITests/UITestsAppCoordinator.swift +++ b/ElementX/Sources/UITests/UITestsAppCoordinator.swift @@ -233,9 +233,7 @@ class MockScreen: Identifiable { case .bugReport: let navigationStackCoordinator = NavigationStackCoordinator() let clientProxy = ClientProxyMock(.init(userID: "@mock:client.com", roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))) - let userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: clientProxy)) let coordinator = BugReportScreenCoordinator(parameters: .init(bugReportService: BugReportServiceMock(), userSession: userSession, userIndicatorController: nil, @@ -245,7 +243,7 @@ class MockScreen: Identifiable { return navigationStackCoordinator case .roomPlainNoAvatar: let navigationStackCoordinator = NavigationStackCoordinator() - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Some room name", avatarURL: nil)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Some room name", avatarURL: nil)), timelineController: MockRoomTimelineController(), mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -261,7 +259,7 @@ class MockScreen: Identifiable { let navigationStackCoordinator = NavigationStackCoordinator() let timelineController = MockRoomTimelineController() timelineController.timelineItems = RoomTimelineItemFixtures.smallChunk - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "New room", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "New room", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -277,7 +275,7 @@ class MockScreen: Identifiable { let navigationStackCoordinator = NavigationStackCoordinator() let timelineController = MockRoomTimelineController() timelineController.timelineItems = RoomTimelineItemFixtures.default - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "New room", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "New room", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -293,7 +291,7 @@ class MockScreen: Identifiable { let navigationStackCoordinator = NavigationStackCoordinator() let timelineController = MockRoomTimelineController() timelineController.timelineItems = RoomTimelineItemFixtures.smallChunkWithReadReceipts - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "New room", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "New room", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -312,7 +310,7 @@ class MockScreen: Identifiable { timelineController.timelineItems = RoomTimelineItemFixtures.smallChunk timelineController.backPaginationResponses = [RoomTimelineItemFixtures.singleMessageChunk] timelineController.incomingItems = [RoomTimelineItemFixtures.incomingMessage] - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Small timeline", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Small timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -331,7 +329,7 @@ class MockScreen: Identifiable { let timelineController = MockRoomTimelineController(listenForSignals: true) timelineController.timelineItems = RoomTimelineItemFixtures.smallChunk timelineController.backPaginationResponses = [RoomTimelineItemFixtures.largeChunk] - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Small timeline, paginating", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Small timeline, paginating", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -350,7 +348,7 @@ class MockScreen: Identifiable { let timelineController = MockRoomTimelineController(listenForSignals: true) timelineController.timelineItems = RoomTimelineItemFixtures.largeChunk timelineController.backPaginationResponses = [RoomTimelineItemFixtures.largeChunk] - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Large timeline", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Large timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -370,7 +368,7 @@ class MockScreen: Identifiable { timelineController.timelineItems = RoomTimelineItemFixtures.largeChunk timelineController.backPaginationResponses = [RoomTimelineItemFixtures.largeChunk] timelineController.incomingItems = [RoomTimelineItemFixtures.incomingMessage] - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Large timeline", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Large timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -389,7 +387,7 @@ class MockScreen: Identifiable { let timelineController = MockRoomTimelineController(listenForSignals: true) timelineController.timelineItems = RoomTimelineItemFixtures.largeChunk timelineController.incomingItems = [RoomTimelineItemFixtures.incomingMessage] - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Large timeline", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Large timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -407,7 +405,7 @@ class MockScreen: Identifiable { let timelineController = MockRoomTimelineController() timelineController.timelineItems = RoomTimelineItemFixtures.permalinkChunk - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Timeline highlight", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Timeline highlight", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -439,7 +437,7 @@ class MockScreen: Identifiable { let timelineController = MockRoomTimelineController() timelineController.timelineItems = RoomTimelineItemFixtures.disclosedPolls timelineController.incomingItems = [] - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -458,7 +456,7 @@ class MockScreen: Identifiable { let timelineController = MockRoomTimelineController() timelineController.timelineItems = RoomTimelineItemFixtures.undisclosedPolls timelineController.incomingItems = [] - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -477,7 +475,7 @@ class MockScreen: Identifiable { let timelineController = MockRoomTimelineController() timelineController.timelineItems = RoomTimelineItemFixtures.outgoingPolls timelineController.incomingItems = [] - let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(with: .init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), + let parameters = RoomScreenCoordinatorParameters(roomProxy: RoomProxyMock(.init(name: "Polls timeline", avatarURL: URL.picturesDirectory)), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -504,7 +502,7 @@ class MockScreen: Identifiable { let clientProxy = ClientProxyMock(.init(userID: "@mock:client.com", roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))) ServiceLocator.shared.settings.migratedAccounts[clientProxy.userID] = true - let flowCoordinator = UserSessionFlowCoordinator(userSession: MockUserSession(clientProxy: clientProxy, mediaProvider: MockMediaProvider(), voiceMessageMediaManager: VoiceMessageMediaManagerMock()), + let flowCoordinator = UserSessionFlowCoordinator(userSession: UserSessionMock(.init(clientProxy: clientProxy)), navigationRootCoordinator: navigationRootCoordinator, appLockService: AppLockService(keychainController: KeychainControllerMock(), appSettings: ServiceLocator.shared.settings), @@ -526,7 +524,7 @@ class MockScreen: Identifiable { let navigationStackCoordinator = NavigationStackCoordinator() let members: [RoomMemberProxyMock] = [.mockInvitedAlice, .mockBob, .mockCharlie] let coordinator = RoomMembersListScreenCoordinator(parameters: .init(mediaProvider: MockMediaProvider(), - roomProxy: RoomProxyMock(with: .init(name: "test", members: members)), + roomProxy: RoomProxyMock(.init(name: "test", members: members)), userIndicatorController: ServiceLocator.shared.userIndicatorController, analytics: ServiceLocator.shared.analytics)) navigationStackCoordinator.setRootCoordinator(coordinator) @@ -534,7 +532,7 @@ class MockScreen: Identifiable { case .roomRolesAndPermissionsFlow: let navigationStackCoordinator = NavigationStackCoordinator() navigationStackCoordinator.setRootCoordinator(BlankFormCoordinator()) - let coordinator = RoomRolesAndPermissionsFlowCoordinator(parameters: .init(roomProxy: RoomProxyMock(with: .init(members: .allMembersAsAdmin)), + let coordinator = RoomRolesAndPermissionsFlowCoordinator(parameters: .init(roomProxy: RoomProxyMock(.init(members: .allMembersAsAdmin)), mediaProvider: MockMediaProvider(), navigationStackCoordinator: navigationStackCoordinator, userIndicatorController: ServiceLocator.shared.userIndicatorController, @@ -546,9 +544,7 @@ class MockScreen: Identifiable { let navigationStackCoordinator = NavigationStackCoordinator() let userDiscoveryMock = UserDiscoveryServiceMock() userDiscoveryMock.searchProfilesWithReturnValue = .success([]) - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@mock:client.com")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@mock:client.com")))) let parameters: StartChatScreenCoordinatorParameters = .init(orientationManager: OrientationManagerMock(), userSession: userSession, userIndicatorController: UserIndicatorControllerMock(), @@ -562,7 +558,7 @@ class MockScreen: Identifiable { let clientProxy = ClientProxyMock(.init(userID: "@mock:client.com")) let userDiscoveryMock = UserDiscoveryServiceMock() userDiscoveryMock.searchProfilesWithReturnValue = .success([.mockBob, .mockBobby]) - let userSession = MockUserSession(clientProxy: clientProxy, mediaProvider: MockMediaProvider(), voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: clientProxy)) let coordinator = StartChatScreenCoordinator(parameters: .init(orientationManager: OrientationManagerMock(), userSession: userSession, userIndicatorController: UserIndicatorControllerMock(), @@ -573,7 +569,7 @@ class MockScreen: Identifiable { case .createRoom: let navigationStackCoordinator = NavigationStackCoordinator() let clientProxy = ClientProxyMock(.init(userID: "@mock:client.com")) - let mockUserSession = MockUserSession(clientProxy: clientProxy, mediaProvider: MockMediaProvider(), voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let mockUserSession = UserSessionMock(.init(clientProxy: clientProxy)) let createRoomParameters = CreateRoomFlowParameters() let selectedUsers: [UserProfileProxy] = [.mockAlice, .mockBob, .mockCharlie] let parameters = CreateRoomCoordinatorParameters(userSession: mockUserSession, @@ -586,9 +582,7 @@ class MockScreen: Identifiable { case .createRoomNoUsers: let navigationStackCoordinator = NavigationStackCoordinator() let clientProxy = ClientProxyMock(.init(userID: "@mock:client.com")) - let mockUserSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let mockUserSession = UserSessionMock(.init(clientProxy: clientProxy)) let createRoomParameters = CreateRoomFlowParameters() let parameters = CreateRoomCoordinatorParameters(userSession: mockUserSession, userIndicatorController: UserIndicatorControllerMock(), diff --git a/UnitTests/Sources/CompletionSuggestionServiceTests.swift b/UnitTests/Sources/CompletionSuggestionServiceTests.swift index fb14c3394..26d555726 100644 --- a/UnitTests/Sources/CompletionSuggestionServiceTests.swift +++ b/UnitTests/Sources/CompletionSuggestionServiceTests.swift @@ -30,7 +30,7 @@ final class CompletionSuggestionServiceTests: XCTestCase { func testUserSuggestions() async throws { let alice: RoomMemberProxyMock = .mockAlice let members: [RoomMemberProxyMock] = [alice, .mockBob, .mockCharlie, .mockMe] - let roomProxyMock = RoomProxyMock(with: .init(name: "test", members: members)) + let roomProxyMock = RoomProxyMock(.init(name: "test", members: members)) let service = CompletionSuggestionService(roomProxy: roomProxyMock) var deferred = deferFulfillment(service.suggestionsPublisher) { suggestions in @@ -67,7 +67,7 @@ final class CompletionSuggestionServiceTests: XCTestCase { func testUserSuggestionsIncludingAllUsers() async throws { let alice: RoomMemberProxyMock = .mockAlice let members: [RoomMemberProxyMock] = [alice, .mockBob, .mockCharlie, .mockMe] - let roomProxyMock = RoomProxyMock(with: .init(name: "test", members: members, canUserTriggerRoomNotification: true)) + let roomProxyMock = RoomProxyMock(.init(name: "test", members: members, canUserTriggerRoomNotification: true)) let service = CompletionSuggestionService(roomProxy: roomProxyMock) var deferred = deferFulfillment(service.suggestionsPublisher) { suggestions in @@ -93,7 +93,7 @@ final class CompletionSuggestionServiceTests: XCTestCase { let alice: RoomMemberProxyMock = .mockAlice let bob: RoomMemberProxyMock = .mockBob let members: [RoomMemberProxyMock] = [alice, bob, .mockMe] - let roomProxyMock = RoomProxyMock(with: .init(name: "test", members: members, canUserTriggerRoomNotification: true)) + let roomProxyMock = RoomProxyMock(.init(name: "test", members: members, canUserTriggerRoomNotification: true)) let service = CompletionSuggestionService(roomProxy: roomProxyMock) var deferred = deferFulfillment(service.suggestionsPublisher) { suggestions in diff --git a/UnitTests/Sources/CreateRoomViewModelTests.swift b/UnitTests/Sources/CreateRoomViewModelTests.swift index c1d318568..161a9cb35 100644 --- a/UnitTests/Sources/CreateRoomViewModelTests.swift +++ b/UnitTests/Sources/CreateRoomViewModelTests.swift @@ -23,7 +23,7 @@ import XCTest class CreateRoomScreenViewModelTests: XCTestCase { var viewModel: CreateRoomViewModelProtocol! var clientProxy: ClientProxyMock! - var userSession: MockUserSession! + var userSession: UserSessionMock! private let usersSubject = CurrentValueSubject<[UserProfileProxy], Never>([]) private var cancellables = Set() @@ -35,9 +35,7 @@ class CreateRoomScreenViewModelTests: XCTestCase { override func setUpWithError() throws { cancellables.removeAll() clientProxy = ClientProxyMock(.init(userID: "@a:b.com")) - userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + userSession = UserSessionMock(.init(clientProxy: clientProxy)) let parameters = CreateRoomFlowParameters() usersSubject.send([.mockAlice, .mockBob, .mockCharlie]) let viewModel = CreateRoomViewModel(userSession: userSession, diff --git a/UnitTests/Sources/HomeScreenViewModelTests.swift b/UnitTests/Sources/HomeScreenViewModelTests.swift index 91cb72df7..f6faa5e95 100644 --- a/UnitTests/Sources/HomeScreenViewModelTests.swift +++ b/UnitTests/Sources/HomeScreenViewModelTests.swift @@ -31,9 +31,7 @@ class HomeScreenViewModelTests: XCTestCase { cancellables.removeAll() roomSummaryProvider = RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))) clientProxy = ClientProxyMock(.init(userID: "@mock:client.com", roomSummaryProvider: roomSummaryProvider)) - viewModel = HomeScreenViewModel(userSession: MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()), + viewModel = HomeScreenViewModel(userSession: UserSessionMock(.init(clientProxy: clientProxy)), analyticsService: ServiceLocator.shared.analytics, appSettings: ServiceLocator.shared.settings, selectedRoomPublisher: CurrentValueSubject(nil).asCurrentValuePublisher(), @@ -89,7 +87,7 @@ class HomeScreenViewModelTests: XCTestCase { func testLeaveRoomAlert() async throws { let mockRoomId = "1" - clientProxy.roomForIdentifierClosure = { _ in RoomProxyMock(with: .init(id: mockRoomId, name: "Some room")) } + clientProxy.roomForIdentifierClosure = { _ in RoomProxyMock(.init(id: mockRoomId, name: "Some room")) } let deferred = deferFulfillment(context.$viewState) { value in value.bindings.leaveRoomAlertItem != nil @@ -104,7 +102,7 @@ class HomeScreenViewModelTests: XCTestCase { func testLeaveRoomError() async throws { let mockRoomId = "1" - let room: RoomProxyMock = .init(with: .init(id: mockRoomId, name: "Some room")) + let room = RoomProxyMock(.init(id: mockRoomId, name: "Some room")) room.leaveRoomClosure = { .failure(.sdkError(ClientProxyMockError.generic)) } clientProxy.roomForIdentifierClosure = { _ in room } @@ -135,7 +133,7 @@ class HomeScreenViewModelTests: XCTestCase { expectation.fulfill() } .store(in: &cancellables) - let room: RoomProxyMock = .init(with: .init(id: mockRoomId, name: "Some room")) + let room = RoomProxyMock(.init(id: mockRoomId, name: "Some room")) room.leaveRoomClosure = { .success(()) } clientProxy.roomForIdentifierClosure = { _ in room } diff --git a/UnitTests/Sources/InviteUsersViewModelTests.swift b/UnitTests/Sources/InviteUsersViewModelTests.swift index eb7b8ca1c..7deebb12e 100644 --- a/UnitTests/Sources/InviteUsersViewModelTests.swift +++ b/UnitTests/Sources/InviteUsersViewModelTests.swift @@ -64,7 +64,7 @@ class InviteUsersScreenViewModelTests: XCTestCase { func testInviteButton() async throws { let mockedMembers: [RoomMemberProxyMock] = [.mockAlice, .mockBob] - setupWithRoomType(roomType: .room(roomProxy: RoomProxyMock(with: .init(name: "test", members: mockedMembers)))) + setupWithRoomType(roomType: .room(roomProxy: RoomProxyMock(.init(name: "test", members: mockedMembers)))) let deferredState = deferFulfillment(viewModel.context.$viewState) { state in state.isUserSelected(.mockAlice) diff --git a/UnitTests/Sources/MessageForwardingScreenViewModelTests.swift b/UnitTests/Sources/MessageForwardingScreenViewModelTests.swift index 00f29f0ac..dccf8c3c8 100644 --- a/UnitTests/Sources/MessageForwardingScreenViewModelTests.swift +++ b/UnitTests/Sources/MessageForwardingScreenViewModelTests.swift @@ -32,7 +32,7 @@ class MessageForwardingScreenViewModelTests: XCTestCase { cancellables.removeAll() let clientProxy = ClientProxyMock(.init()) - clientProxy.roomForIdentifierClosure = { RoomProxyMock(with: .init(id: $0)) } + clientProxy.roomForIdentifierClosure = { RoomProxyMock(.init(id: $0)) } viewModel = MessageForwardingScreenViewModel(forwardingItem: forwardingItem, clientProxy: clientProxy, diff --git a/UnitTests/Sources/NotificationManager/NotificationManagerTests.swift b/UnitTests/Sources/NotificationManager/NotificationManagerTests.swift index 9a076686b..81bb9a37f 100644 --- a/UnitTests/Sources/NotificationManager/NotificationManagerTests.swift +++ b/UnitTests/Sources/NotificationManager/NotificationManagerTests.swift @@ -24,9 +24,7 @@ import XCTest final class NotificationManagerTests: XCTestCase { var notificationManager: NotificationManager! private let clientProxy = ClientProxyMock(.init(userID: "@test:user.net")) - private lazy var mockUserSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + private lazy var mockUserSession = UserSessionMock(.init(clientProxy: clientProxy)) private var notificationCenter: UserNotificationCenterMock! private var authorizationStatusWasGranted = false private var shouldDisplayInAppNotificationReturnValue = false @@ -169,9 +167,7 @@ final class NotificationManagerTests: XCTestCase { notificationCenter.authorizationStatusReturnValue = .authorized notificationManager.delegate = self - notificationManager.setUserSession(MockUserSession(clientProxy: ClientProxyMock(), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock())) + notificationManager.setUserSession(UserSessionMock(.init(clientProxy: ClientProxyMock(.init())))) try await Task.sleep(for: .seconds(1)) XCTAssertFalse(authorizationStatusWasGranted) @@ -188,9 +184,7 @@ final class NotificationManagerTests: XCTestCase { expectation.fulfill() } - notificationManager.setUserSession(MockUserSession(clientProxy: ClientProxyMock(), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock())) + notificationManager.setUserSession(UserSessionMock(.init(clientProxy: ClientProxyMock(.init())))) await fulfillment(of: [expectation]) XCTAssertTrue(authorizationStatusWasGranted) diff --git a/UnitTests/Sources/NotificationSettingsEditScreenViewModelTests.swift b/UnitTests/Sources/NotificationSettingsEditScreenViewModelTests.swift index 6110b5d77..91da060eb 100644 --- a/UnitTests/Sources/NotificationSettingsEditScreenViewModelTests.swift +++ b/UnitTests/Sources/NotificationSettingsEditScreenViewModelTests.swift @@ -31,9 +31,7 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase { @MainActor override func setUpWithError() throws { let clientProxy = ClientProxyMock(.init(userID: "@a:b.com")) - userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + userSession = UserSessionMock(.init(clientProxy: clientProxy)) notificationSettingsProxy = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()) notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .allMessages } diff --git a/UnitTests/Sources/PillContextTests.swift b/UnitTests/Sources/PillContextTests.swift index a5705bc08..9d5504df4 100644 --- a/UnitTests/Sources/PillContextTests.swift +++ b/UnitTests/Sources/PillContextTests.swift @@ -23,7 +23,7 @@ import XCTest class PillContextTests: XCTestCase { func testUser() async throws { let id = "@test:matrix.org" - let proxyMock = RoomProxyMock(with: .init(name: "Test")) + let proxyMock = RoomProxyMock(.init(name: "Test")) let subject = CurrentValueSubject<[RoomMemberProxyProtocol], Never>([]) proxyMock.membersPublisher = subject.asCurrentValuePublisher() let mock = RoomScreenViewModel(roomProxy: proxyMock, @@ -52,7 +52,7 @@ class PillContextTests: XCTestCase { func testOwnUser() async throws { let id = "@test:matrix.org" - let proxyMock = RoomProxyMock(with: .init(name: "Test", ownUserID: id)) + let proxyMock = RoomProxyMock(.init(name: "Test", ownUserID: id)) let subject = CurrentValueSubject<[RoomMemberProxyProtocol], Never>([]) proxyMock.membersPublisher = subject.asCurrentValuePublisher() let mock = RoomScreenViewModel(roomProxy: proxyMock, @@ -74,7 +74,7 @@ class PillContextTests: XCTestCase { let avatarURL = URL(string: "https://matrix.jpg") let id = "test_room" let displayName = "Test" - let proxyMock = RoomProxyMock(with: .init(id: id, name: displayName, avatarURL: avatarURL)) + let proxyMock = RoomProxyMock(.init(id: id, name: displayName, avatarURL: avatarURL)) let mockController = MockRoomTimelineController() mockController.roomProxy = proxyMock let mock = RoomScreenViewModel(roomProxy: proxyMock, diff --git a/UnitTests/Sources/ReportContentViewModelTests.swift b/UnitTests/Sources/ReportContentViewModelTests.swift index ab77315a1..ceded0d44 100644 --- a/UnitTests/Sources/ReportContentViewModelTests.swift +++ b/UnitTests/Sources/ReportContentViewModelTests.swift @@ -25,7 +25,7 @@ class ReportContentScreenViewModelTests: XCTestCase { func testReportContent() async throws { // Given the report content view for some content. - let roomProxy = RoomProxyMock(with: .init(name: "test")) + let roomProxy = RoomProxyMock(.init(name: "test")) roomProxy.reportContentReasonReturnValue = .success(()) let clientProxy = ClientProxyMock(.init()) let viewModel = ReportContentScreenViewModel(eventID: eventID, @@ -54,7 +54,7 @@ class ReportContentScreenViewModelTests: XCTestCase { func testReportIgnoringSender() async throws { // Given the report content view for some content. - let roomProxy = RoomProxyMock(with: .init(name: "test")) + let roomProxy = RoomProxyMock(.init(name: "test")) roomProxy.reportContentReasonReturnValue = .success(()) let clientProxy = ClientProxyMock(.init()) let viewModel = ReportContentScreenViewModel(eventID: eventID, diff --git a/UnitTests/Sources/RoomChangePermissionsScreenViewModelTests.swift b/UnitTests/Sources/RoomChangePermissionsScreenViewModelTests.swift index 2d2843b9d..555756bc2 100644 --- a/UnitTests/Sources/RoomChangePermissionsScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomChangePermissionsScreenViewModelTests.swift @@ -28,7 +28,7 @@ class RoomChangePermissionsScreenViewModelTests: XCTestCase { } override func setUp() { - roomProxy = RoomProxyMock(with: .init()) + roomProxy = RoomProxyMock(.init()) viewModel = RoomChangePermissionsScreenViewModel(currentPermissions: .init(powerLevels: .mock), group: .roomDetails, roomProxy: roomProxy, diff --git a/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift b/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift index d3a24ef41..ea3a922b0 100644 --- a/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomChangeRolesScreenViewModelTests.swift @@ -202,7 +202,7 @@ class RoomChangeRolesScreenViewModelTests: XCTestCase { } private func setupViewModel(mode: RoomMemberDetails.Role) { - roomProxy = RoomProxyMock(with: .init(members: .allMembersAsAdmin)) + roomProxy = RoomProxyMock(.init(members: .allMembersAsAdmin)) viewModel = RoomChangeRolesScreenViewModel(mode: mode, roomProxy: roomProxy, mediaProvider: MockMediaProvider(), diff --git a/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift b/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift index b29d37008..9a2a3a656 100644 --- a/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift @@ -119,7 +119,7 @@ class RoomDetailsEditScreenViewModelTests: XCTestCase { private func setupViewModel(roomProxyConfiguration: RoomProxyMockConfiguration) { userIndicatorController = UserIndicatorControllerMock.default - viewModel = .init(roomProxy: RoomProxyMock(with: roomProxyConfiguration), + viewModel = .init(roomProxy: RoomProxyMock(roomProxyConfiguration), mediaProvider: MockMediaProvider(), userIndicatorController: userIndicatorController) } diff --git a/UnitTests/Sources/RoomDetailsViewModelTests.swift b/UnitTests/Sources/RoomDetailsViewModelTests.swift index 8f716d4c7..e65c449ff 100644 --- a/UnitTests/Sources/RoomDetailsViewModelTests.swift +++ b/UnitTests/Sources/RoomDetailsViewModelTests.swift @@ -31,7 +31,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { override func setUp() { cancellables.removeAll() - roomProxyMock = RoomProxyMock(with: .init(name: "Test")) + roomProxyMock = RoomProxyMock(.init(name: "Test")) notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), @@ -46,7 +46,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testLeaveRoomTappedWhenPublic() async throws { let mockedMembers: [RoomMemberProxyMock] = [.mockBob, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isPublic: true, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isPublic: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -67,7 +67,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testLeaveRoomTappedWhenRoomNotPublic() async throws { let mockedMembers: [RoomMemberProxyMock] = [.mockBob, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isPublic: false, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isPublic: false, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -89,7 +89,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testLeaveRoomTappedWithLessThanTwoMembers() async { let mockedMembers: [RoomMemberProxyMock] = [.mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isPublic: false, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isPublic: false, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -141,7 +141,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testInitialDMDetailsState() async throws { let recipient = RoomMemberProxyMock.mockDan let mockedMembers: [RoomMemberProxyMock] = [.mockMe, recipient] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -163,7 +163,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { let recipient = RoomMemberProxyMock.mockDan let mockedMembers: [RoomMemberProxyMock] = [.mockMe, recipient] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -196,7 +196,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { let mockedMembers: [RoomMemberProxyMock] = [.mockMe, recipient] let clientProxy = ClientProxyMock(.init()) clientProxy.ignoreUserReturnValue = .failure(.sdkError(ClientProxyMockError.generic)) - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: clientProxy, mediaProvider: MockMediaProvider(), @@ -228,7 +228,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testUnignoreSuccess() async throws { let recipient = RoomMemberProxyMock.mockIgnored let mockedMembers: [RoomMemberProxyMock] = [.mockMe, recipient] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -261,7 +261,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { let mockedMembers: [RoomMemberProxyMock] = [.mockMe, recipient] let clientProxy = ClientProxyMock(.init()) clientProxy.unignoreUserReturnValue = .failure(.sdkError(ClientProxyMockError.generic)) - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: true, isEncrypted: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: clientProxy, mediaProvider: MockMediaProvider(), @@ -292,10 +292,10 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testCannotInvitePeople() async { let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", - isPublic: true, - members: mockedMembers, - canUserInvite: false)) + roomProxyMock = RoomProxyMock(.init(name: "Test", + isPublic: true, + members: mockedMembers, + canUserInvite: false)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -311,7 +311,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testInvitePeople() async { let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockBob, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isPublic: true, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isPublic: true, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -343,7 +343,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testCanEditAvatar() async { let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockBob, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) roomProxyMock.canUserUserIDSendStateEventClosure = { _, event in .success(event == .roomAvatar) } @@ -365,7 +365,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testCanEditName() async { let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockBob, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) roomProxyMock.canUserUserIDSendStateEventClosure = { _, event in .success(event == .roomName) } @@ -387,7 +387,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testCanEditTopic() async { let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockBob, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) roomProxyMock.canUserUserIDSendStateEventClosure = { _, event in .success(event == .roomTopic) } @@ -409,7 +409,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testCannotEditRoom() async { let mockedMembers: [RoomMemberProxyMock] = [.mockMe, .mockBob, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: false, isPublic: false, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), @@ -428,7 +428,7 @@ class RoomDetailsScreenViewModelTests: XCTestCase { func testCannotEditDirectRoom() async { let mockedMembers: [RoomMemberProxyMock] = [.mockMeAdmin, .mockBob, .mockAlice] - roomProxyMock = RoomProxyMock(with: .init(name: "Test", isDirect: true, isPublic: false, members: mockedMembers)) + roomProxyMock = RoomProxyMock(.init(name: "Test", isDirect: true, isPublic: false, members: mockedMembers)) viewModel = RoomDetailsScreenViewModel(roomProxy: roomProxyMock, clientProxy: ClientProxyMock(.init()), mediaProvider: MockMediaProvider(), diff --git a/UnitTests/Sources/RoomFlowCoordinatorTests.swift b/UnitTests/Sources/RoomFlowCoordinatorTests.swift index f77a51e0d..5f04315ef 100644 --- a/UnitTests/Sources/RoomFlowCoordinatorTests.swift +++ b/UnitTests/Sources/RoomFlowCoordinatorTests.swift @@ -171,7 +171,7 @@ class RoomFlowCoordinatorTests: XCTestCase { // "Join" the room clientProxy.roomForIdentifierClosure = { _ in - RoomProxyMock(with: .init()) + RoomProxyMock(.init()) } try await process(route: .room(roomID: "InvitedRoomID", via: [])) @@ -201,7 +201,7 @@ class RoomFlowCoordinatorTests: XCTestCase { // "Join" the room clientProxy.roomForIdentifierClosure = { _ in - RoomProxyMock(with: .init()) + RoomProxyMock(.init()) } try await process(route: .room(roomID: "InvitedRoomID", via: [])) @@ -291,12 +291,6 @@ class RoomFlowCoordinatorTests: XCTestCase { } } - let mediaProvider = MockMediaProvider() - let voiceMessageMediaManager = VoiceMessageMediaManagerMock() - let userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: mediaProvider, - voiceMessageMediaManager: voiceMessageMediaManager) - let navigationSplitCoordinator = NavigationSplitCoordinator(placeholderCoordinator: PlaceholderScreenCoordinator()) navigationStackCoordinator = NavigationStackCoordinator() navigationSplitCoordinator.setDetailCoordinator(navigationStackCoordinator) @@ -309,7 +303,7 @@ class RoomFlowCoordinatorTests: XCTestCase { } roomFlowCoordinator = await RoomFlowCoordinator(roomID: roomID, - userSession: userSession, + userSession: UserSessionMock(.init(clientProxy: clientProxy)), isChildFlow: asChildFlow, roomTimelineControllerFactory: timelineControllerFactory, navigationStackCoordinator: navigationStackCoordinator, diff --git a/UnitTests/Sources/RoomMemberDetailsViewModelTests.swift b/UnitTests/Sources/RoomMemberDetailsViewModelTests.swift index ad70d8f95..63bd3827f 100644 --- a/UnitTests/Sources/RoomMemberDetailsViewModelTests.swift +++ b/UnitTests/Sources/RoomMemberDetailsViewModelTests.swift @@ -26,7 +26,7 @@ class RoomMemberDetailsViewModelTests: XCTestCase { var context: RoomMemberDetailsScreenViewModelType.Context { viewModel.context } override func setUp() async throws { - roomProxyMock = RoomProxyMock(with: .init(name: "")) + roomProxyMock = RoomProxyMock(.init(name: "")) roomProxyMock.getMemberUserIDClosure = { _ in .success(self.roomMemberProxyMock) diff --git a/UnitTests/Sources/RoomMembersListScreenViewModelTests.swift b/UnitTests/Sources/RoomMembersListScreenViewModelTests.swift index 8ebd64e13..ae2fd28fd 100644 --- a/UnitTests/Sources/RoomMembersListScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomMembersListScreenViewModelTests.swift @@ -286,7 +286,7 @@ class RoomMembersListScreenViewModelTests: XCTestCase { } private func setup(with members: [RoomMemberProxyMock]) { - roomProxy = RoomProxyMock(with: .init(name: "test", members: members)) + roomProxy = RoomProxyMock(.init(name: "test", members: members)) viewModel = .init(roomProxy: roomProxy, mediaProvider: MockMediaProvider(), userIndicatorController: ServiceLocator.shared.userIndicatorController, diff --git a/UnitTests/Sources/RoomNotificationSettingsScreenViewModelTests.swift b/UnitTests/Sources/RoomNotificationSettingsScreenViewModelTests.swift index e38de57fb..93a83812b 100644 --- a/UnitTests/Sources/RoomNotificationSettingsScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomNotificationSettingsScreenViewModelTests.swift @@ -28,12 +28,12 @@ class RoomNotificationSettingsScreenViewModelTests: XCTestCase { override func setUpWithError() throws { cancellables.removeAll() - roomProxyMock = RoomProxyMock(with: .init(name: "Test")) + roomProxyMock = RoomProxyMock(.init(name: "Test")) notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()) } func testInitialStateDefaultModeEncryptedRoom() async throws { - let roomProxyMock = RoomProxyMock(with: .init(name: "Test", isEncrypted: true)) + let roomProxyMock = RoomProxyMock(.init(name: "Test", isEncrypted: true)) let notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()) notificationSettingsProxyMock.getNotificationSettingsRoomIdIsEncryptedIsOneToOneReturnValue = RoomNotificationSettingsProxyMock(with: .init(mode: .mentionsAndKeywordsOnly, isDefault: true)) @@ -55,7 +55,7 @@ class RoomNotificationSettingsScreenViewModelTests: XCTestCase { } func testInitialStateDefaultModeEncryptedRoomWithCanPushEncrypted() async throws { - let roomProxyMock = RoomProxyMock(with: .init(name: "Test", isEncrypted: true)) + let roomProxyMock = RoomProxyMock(.init(name: "Test", isEncrypted: true)) let notificationSettingsProxyMock = NotificationSettingsProxyMock(with: .init(canPushEncryptedEvents: true)) notificationSettingsProxyMock.getNotificationSettingsRoomIdIsEncryptedIsOneToOneReturnValue = RoomNotificationSettingsProxyMock(with: .init(mode: .mentionsAndKeywordsOnly, isDefault: true)) @@ -77,7 +77,7 @@ class RoomNotificationSettingsScreenViewModelTests: XCTestCase { } func testInitialStateDefaultModeUnencryptedRoom() async throws { - let roomProxyMock = RoomProxyMock(with: .init(name: "Test", isEncrypted: false)) + let roomProxyMock = RoomProxyMock(.init(name: "Test", isEncrypted: false)) let notificationSettingsProxyMock = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration()) notificationSettingsProxyMock.getNotificationSettingsRoomIdIsEncryptedIsOneToOneReturnValue = RoomNotificationSettingsProxyMock(with: .init(mode: .mentionsAndKeywordsOnly, isDefault: true)) diff --git a/UnitTests/Sources/RoomRolesAndPermissionsScreenViewModelTests.swift b/UnitTests/Sources/RoomRolesAndPermissionsScreenViewModelTests.swift index 356c1d326..1ce826e56 100644 --- a/UnitTests/Sources/RoomRolesAndPermissionsScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomRolesAndPermissionsScreenViewModelTests.swift @@ -83,7 +83,7 @@ class RoomRolesAndPermissionsScreenViewModelTests: XCTestCase { } private func setupViewModel(members: [RoomMemberProxyMock]) { - roomProxy = RoomProxyMock(with: .init(members: members)) + roomProxy = RoomProxyMock(.init(members: members)) viewModel = RoomRolesAndPermissionsScreenViewModel(roomProxy: roomProxy, userIndicatorController: UserIndicatorControllerMock(), analytics: ServiceLocator.shared.analytics) diff --git a/UnitTests/Sources/RoomScreenViewModelTests.swift b/UnitTests/Sources/RoomScreenViewModelTests.swift index 96fb33724..5e7605116 100644 --- a/UnitTests/Sources/RoomScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomScreenViewModelTests.swift @@ -333,7 +333,7 @@ class RoomScreenViewModelTests: XCTestCase { MockRoomTimelineController, NotificationCenterMock) { let notificationCenter = NotificationCenterMock() - let roomProxy = RoomProxyMock(with: .init(name: "")) + let roomProxy = RoomProxyMock(.init(name: "")) let timelineProxy = TimelineProxyMock() timelineProxy.underlyingActions = Empty(completeImmediately: false).eraseToAnyPublisher() @@ -371,8 +371,7 @@ class RoomScreenViewModelTests: XCTestCase { // When showing them in a timeline. let timelineController = MockRoomTimelineController() timelineController.timelineItems = [message] - let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(with: .init(name: "", - members: [RoomMemberProxyMock.mockAlice, RoomMemberProxyMock.mockCharlie])), + let viewModel = RoomScreenViewModel(roomProxy: RoomProxyMock(.init(name: "", members: [RoomMemberProxyMock.mockAlice, RoomMemberProxyMock.mockCharlie])), timelineController: timelineController, mediaProvider: MockMediaProvider(), mediaPlayerProvider: MediaPlayerProviderMock(), @@ -396,7 +395,7 @@ class RoomScreenViewModelTests: XCTestCase { private func makeViewModel(roomProxy: RoomProxyProtocol? = nil, focussedEventID: String? = nil, timelineController: RoomTimelineControllerProtocol) -> RoomScreenViewModel { - RoomScreenViewModel(roomProxy: roomProxy ?? RoomProxyMock(with: .init(name: "")), + RoomScreenViewModel(roomProxy: roomProxy ?? RoomProxyMock(.init(name: "")), focussedEventID: focussedEventID, timelineController: timelineController, mediaProvider: MockMediaProvider(), diff --git a/UnitTests/Sources/SettingsViewModelTests.swift b/UnitTests/Sources/SettingsViewModelTests.swift index e19749dcb..ac786ff3b 100644 --- a/UnitTests/Sources/SettingsViewModelTests.swift +++ b/UnitTests/Sources/SettingsViewModelTests.swift @@ -27,9 +27,7 @@ class SettingsScreenViewModelTests: XCTestCase { @MainActor override func setUpWithError() throws { cancellables.removeAll() - let userSession = MockUserSession(clientProxy: ClientProxyMock(.init(userID: "")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "")))) viewModel = SettingsScreenViewModel(userSession: userSession, appSettings: ServiceLocator.shared.settings) context = viewModel.context } diff --git a/UnitTests/Sources/StartChatViewModelTests.swift b/UnitTests/Sources/StartChatViewModelTests.swift index 0b4e8d5c5..01382b8eb 100644 --- a/UnitTests/Sources/StartChatViewModelTests.swift +++ b/UnitTests/Sources/StartChatViewModelTests.swift @@ -32,9 +32,7 @@ class StartChatScreenViewModelTests: XCTestCase { clientProxy = .init(.init(userID: "")) userDiscoveryService = UserDiscoveryServiceMock() userDiscoveryService.searchProfilesWithReturnValue = .success([]) - let userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock()) + let userSession = UserSessionMock(.init(clientProxy: clientProxy)) viewModel = StartChatScreenViewModel(userSession: userSession, analytics: ServiceLocator.shared.analytics, userIndicatorController: UserIndicatorControllerMock(), diff --git a/UnitTests/Sources/UserSessionFlowCoordinatorTests.swift b/UnitTests/Sources/UserSessionFlowCoordinatorTests.swift index 6f37690b0..e4042728e 100644 --- a/UnitTests/Sources/UserSessionFlowCoordinatorTests.swift +++ b/UnitTests/Sources/UserSessionFlowCoordinatorTests.swift @@ -37,17 +37,12 @@ class UserSessionFlowCoordinatorTests: XCTestCase { cancellables.removeAll() clientProxy = ClientProxyMock(.init(userID: "hi@bob", roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))))) timelineControllerFactory = RoomTimelineControllerFactoryMock(configuration: .init()) - let mediaProvider = MockMediaProvider() - let voiceMessageMediaManager = VoiceMessageMediaManagerMock() - let userSession = MockUserSession(clientProxy: clientProxy, - mediaProvider: mediaProvider, - voiceMessageMediaManager: voiceMessageMediaManager) navigationRootCoordinator = NavigationRootCoordinator() notificationManager = NotificationManagerMock() - userSessionFlowCoordinator = UserSessionFlowCoordinator(userSession: userSession, + userSessionFlowCoordinator = UserSessionFlowCoordinator(userSession: UserSessionMock(.init(clientProxy: clientProxy)), navigationRootCoordinator: navigationRootCoordinator, appLockService: AppLockServiceMock(), bugReportService: BugReportServiceMock(), diff --git a/UnitTests/Sources/WaitlistScreenViewModelTests.swift b/UnitTests/Sources/WaitlistScreenViewModelTests.swift index bb1e30ed9..12491e416 100644 --- a/UnitTests/Sources/WaitlistScreenViewModelTests.swift +++ b/UnitTests/Sources/WaitlistScreenViewModelTests.swift @@ -31,9 +31,7 @@ class WaitlistScreenViewModelTests: XCTestCase { XCTAssertNil(context.viewState.userSession, "No user session should be set on a new view model.") XCTAssertTrue(context.viewState.isWaiting, "The view should start off in the waiting state.") - viewModel.update(userSession: MockUserSession(clientProxy: ClientProxyMock(.init(userID: "@alice:matrix.org")), - mediaProvider: MockMediaProvider(), - voiceMessageMediaManager: VoiceMessageMediaManagerMock())) + viewModel.update(userSession: UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:matrix.org"))))) XCTAssertNotNil(context.viewState.userSession, "The user session should have been updated.") XCTAssertFalse(context.viewState.isWaiting, "The view should not be in the waiting state after setting a user session.")