Introduce flow parameters to simplify dependencies for child flows. (#4448)

This commit is contained in:
Doug
2025-08-27 13:56:06 +01:00
committed by GitHub
parent c140209e0c
commit dfb2425240
22 changed files with 456 additions and 586 deletions
@@ -65,10 +65,10 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview
notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = [RoomSummary].mockRooms.map(\.id)
let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com",
roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms)))))))
roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))),
notificationSettings: notificationSettingsProxy))))
var viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
userSession: userSession,
notificationSettingsProxy: notificationSettingsProxy)
userSession: userSession)
viewModel.fetchInitialContent()
return viewModel
}()
@@ -78,10 +78,10 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview
notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .mentionsAndKeywordsOnly
notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = []
let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com",
roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms)))))))
roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))),
notificationSettings: notificationSettingsProxy))))
var viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat,
userSession: userSession,
notificationSettingsProxy: notificationSettingsProxy)
userSession: userSession)
viewModel.fetchInitialContent()
return viewModel
}()
@@ -90,11 +90,11 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init())
notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .mentionsAndKeywordsOnly
notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = []
let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe"))))
let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe",
notificationSettings: notificationSettingsProxy))))
var viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat,
userSession: userSession,
notificationSettingsProxy: notificationSettingsProxy)
userSession: userSession)
viewModel.state.pendingMode = .mentionsAndKeywordsOnly
viewModel.fetchInitialContent()
return viewModel
@@ -106,10 +106,10 @@ struct NotificationSettingsEditScreen_Previews: PreviewProvider, TestablePreview
notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = [RoomSummary].mockRooms.map(\.id)
let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "@alice:example.com",
roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms)))))))
roomSummaryProvider: RoomSummaryProviderMock(.init(state: .loaded(.mockRooms))),
notificationSettings: notificationSettingsProxy))))
var viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
userSession: userSession,
notificationSettingsProxy: notificationSettingsProxy)
userSession: userSession)
viewModel.fetchInitialContent()
return viewModel
}()
@@ -50,13 +50,14 @@ struct NotificationSettingsEditScreenRoomCell_Previews: PreviewProvider, Testabl
static var previews: some View {
let summaryProvider = RoomSummaryProviderMock(.init(state: .loaded(.mockRooms)))
let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe", roomSummaryProvider: summaryProvider))))
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init())
notificationSettingsProxy.getRoomsWithUserDefinedRulesReturnValue = []
let userSession = UserSessionMock(.init(clientProxy: ClientProxyMock(.init(userID: "John Doe",
roomSummaryProvider: summaryProvider,
notificationSettings: notificationSettingsProxy))))
let viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
userSession: userSession,
notificationSettingsProxy: notificationSettingsProxy)
userSession: userSession)
let rooms: [NotificationSettingsEditScreenRoom] = summaryProvider.roomListPublisher.value.compactMap { summary -> NotificationSettingsEditScreenRoom? in
NotificationSettingsEditScreenRoom(id: UUID().uuidString,