mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
Introduce flow parameters to simplify dependencies for child flows. (#4448)
This commit is contained in:
@@ -14,17 +14,19 @@ import XCTest
|
||||
class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
||||
private var viewModel: NotificationSettingsEditScreenViewModelProtocol!
|
||||
private var notificationSettingsProxy: NotificationSettingsProxyMock!
|
||||
private var userSession: UserSessionProtocol!
|
||||
private var userSession: UserSessionMock!
|
||||
private var clientProxy: ClientProxyMock!
|
||||
|
||||
private var context: NotificationSettingsEditScreenViewModelType.Context {
|
||||
viewModel.context
|
||||
}
|
||||
|
||||
@MainActor override func setUpWithError() throws {
|
||||
let clientProxy = ClientProxyMock(.init(userID: "@a:b.com"))
|
||||
userSession = UserSessionMock(.init(clientProxy: clientProxy))
|
||||
notificationSettingsProxy = NotificationSettingsProxyMock(with: NotificationSettingsProxyMockConfiguration())
|
||||
notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .allMessages
|
||||
|
||||
clientProxy = ClientProxyMock(.init(userID: "@a:b.com", notificationSettings: notificationSettingsProxy))
|
||||
userSession = UserSessionMock(.init(clientProxy: clientProxy))
|
||||
}
|
||||
|
||||
func testFetchSettings() async throws {
|
||||
@@ -36,9 +38,7 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
||||
return .mentionsAndKeywordsOnly
|
||||
}
|
||||
}
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
|
||||
userSession: userSession,
|
||||
notificationSettingsProxy: notificationSettingsProxy)
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat, userSession: userSession)
|
||||
|
||||
let deferred = deferFulfillment(viewModel.context.observe(\.viewState.defaultMode)) { $0 != nil }
|
||||
|
||||
@@ -75,9 +75,7 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
||||
notificationSettingsProxy.canPushEncryptedEventsToDeviceClosure = {
|
||||
true
|
||||
}
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
|
||||
userSession: userSession,
|
||||
notificationSettingsProxy: notificationSettingsProxy)
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat, userSession: userSession)
|
||||
|
||||
let deferred = deferFulfillment(viewModel.context.observe(\.viewState.defaultMode)) { $0 != nil }
|
||||
|
||||
@@ -104,9 +102,7 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
||||
|
||||
func testSetModeAllMessages() async throws {
|
||||
notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .mentionsAndKeywordsOnly
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
|
||||
userSession: userSession,
|
||||
notificationSettingsProxy: notificationSettingsProxy)
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat, userSession: userSession)
|
||||
let deferred = deferFulfillment(viewModel.context.observe(\.viewState.defaultMode)) { $0 != nil }
|
||||
|
||||
viewModel.fetchInitialContent()
|
||||
@@ -142,9 +138,7 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
||||
}
|
||||
|
||||
func testSetModeMentions() async throws {
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat,
|
||||
userSession: userSession,
|
||||
notificationSettingsProxy: notificationSettingsProxy)
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .groupChat, userSession: userSession)
|
||||
|
||||
let deferred = deferFulfillment(viewModel.context.observe(\.viewState.defaultMode)) { $0 != nil }
|
||||
|
||||
@@ -183,9 +177,7 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
||||
func testSetModeDirectChats() async throws {
|
||||
notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .mentionsAndKeywordsOnly
|
||||
// Initialize for direct chats
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat,
|
||||
userSession: userSession,
|
||||
notificationSettingsProxy: notificationSettingsProxy)
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat, userSession: userSession)
|
||||
|
||||
let deferred = deferFulfillment(viewModel.context.observe(\.viewState.defaultMode)) { $0 != nil }
|
||||
|
||||
@@ -216,9 +208,7 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
||||
func testSetModeFailure() async throws {
|
||||
notificationSettingsProxy.getDefaultRoomNotificationModeIsEncryptedIsOneToOneReturnValue = .mentionsAndKeywordsOnly
|
||||
notificationSettingsProxy.setDefaultRoomNotificationModeIsEncryptedIsOneToOneModeThrowableError = NotificationSettingsError.Generic(msg: "error")
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat,
|
||||
userSession: userSession,
|
||||
notificationSettingsProxy: notificationSettingsProxy)
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat, userSession: userSession)
|
||||
|
||||
let deferred = deferFulfillment(viewModel.context.observe(\.viewState.defaultMode)) { $0 != nil }
|
||||
|
||||
@@ -238,9 +228,7 @@ class NotificationSettingsEditScreenViewModelTests: XCTestCase {
|
||||
|
||||
func testSelectRoom() async throws {
|
||||
let roomID = "!roomidentifier:matrix.org"
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat,
|
||||
userSession: userSession,
|
||||
notificationSettingsProxy: notificationSettingsProxy)
|
||||
viewModel = NotificationSettingsEditScreenViewModel(chatType: .oneToOneChat, userSession: userSession)
|
||||
|
||||
let deferredActions = deferFulfillment(viewModel.actions) { action in
|
||||
switch action {
|
||||
|
||||
Reference in New Issue
Block a user