mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-29 04:36:58 +02:00
+9
-5
@@ -29,7 +29,8 @@ enum MockSpaceCreationEmailInvitesScreenState: MockScreenState, CaseIterable {
|
||||
case defaultEmailValues
|
||||
case emailEntered
|
||||
case emailValidationFailed
|
||||
|
||||
case loading
|
||||
|
||||
/// The associated screen
|
||||
var screenType: Any.Type {
|
||||
SpaceCreationEmailInvites.self
|
||||
@@ -37,7 +38,7 @@ enum MockSpaceCreationEmailInvitesScreenState: MockScreenState, CaseIterable {
|
||||
|
||||
/// A list of screen state definitions
|
||||
static var allCases: [MockSpaceCreationEmailInvitesScreenState] {
|
||||
[.defaultEmailValues, .emailEntered, .emailValidationFailed]
|
||||
[.defaultEmailValues, .emailEntered, .emailValidationFailed, .loading]
|
||||
}
|
||||
|
||||
/// Generate the view struct for the screen state.
|
||||
@@ -46,13 +47,16 @@ enum MockSpaceCreationEmailInvitesScreenState: MockScreenState, CaseIterable {
|
||||
let service: MockSpaceCreationEmailInvitesService
|
||||
switch self {
|
||||
case .defaultEmailValues:
|
||||
service = MockSpaceCreationEmailInvitesService(defaultValidation: true)
|
||||
service = MockSpaceCreationEmailInvitesService(defaultValidation: true, isLoading: false)
|
||||
case .emailEntered:
|
||||
creationParams.emailInvites = ["test1@element.io", "test2@element.io"]
|
||||
service = MockSpaceCreationEmailInvitesService(defaultValidation: true)
|
||||
service = MockSpaceCreationEmailInvitesService(defaultValidation: true, isLoading: false)
|
||||
case .emailValidationFailed:
|
||||
creationParams.emailInvites = ["test1@element.io", "test2@element.io"]
|
||||
service = MockSpaceCreationEmailInvitesService(defaultValidation: false)
|
||||
service = MockSpaceCreationEmailInvitesService(defaultValidation: false, isLoading: false)
|
||||
case .loading:
|
||||
creationParams.emailInvites = ["test1@element.io", "test2@element.io"]
|
||||
service = MockSpaceCreationEmailInvitesService(defaultValidation: true, isLoading: true)
|
||||
}
|
||||
let viewModel = SpaceCreationEmailInvitesViewModel(creationParameters: creationParams, service: service)
|
||||
|
||||
|
||||
+12
-1
@@ -21,13 +21,24 @@ import Combine
|
||||
|
||||
@available(iOS 14.0, *)
|
||||
class MockSpaceCreationEmailInvitesService: SpaceCreationEmailInvitesServiceProtocol {
|
||||
var isLoadingSubject: CurrentValueSubject<Bool, Never>
|
||||
|
||||
private let defaultValidation: Bool
|
||||
|
||||
init(defaultValidation: Bool) {
|
||||
var isIdentityServiceReady: Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
init(defaultValidation: Bool, isLoading: Bool) {
|
||||
self.defaultValidation = defaultValidation
|
||||
self.isLoadingSubject = CurrentValueSubject(isLoading)
|
||||
}
|
||||
|
||||
func validate(_ emailAddresses: [String]) -> [Bool] {
|
||||
return emailAddresses.map { _ in defaultValidation }
|
||||
}
|
||||
|
||||
func prepareIdentityService(prepared: ((String?, String?) -> Void)?, failure: ((Error?) -> Void)?) {
|
||||
failure?(nil)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user