From 2da0a2e058999a7d19529adebec0c6b5eb528ac9 Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 27 May 2024 13:50:55 -0400 Subject: [PATCH] Attempt 1 --- Sources/SwiftfulFirebaseAuth/Core/AuthManager.swift | 10 +++++++--- .../Core/AuthManagerEnvironmentKey.swift | 2 +- .../Providers/MockAuthProvider.swift | 11 +++++++++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Sources/SwiftfulFirebaseAuth/Core/AuthManager.swift b/Sources/SwiftfulFirebaseAuth/Core/AuthManager.swift index b06366b..ee43177 100644 --- a/Sources/SwiftfulFirebaseAuth/Core/AuthManager.swift +++ b/Sources/SwiftfulFirebaseAuth/Core/AuthManager.swift @@ -19,15 +19,19 @@ public struct AuthInfo { } } +public enum MockAuthConfiguration { + case signInAndOut, signedIn, signedOut +} + public enum Configuration { - case mock, firebase + case mock(_ configuration: MockAuthConfiguration), firebase var provider: AuthProvider { switch self { case .firebase: return FirebaseAuthProvider() - case .mock: - return MockAuthProvider() + case .mock(let configuration): + return MockAuthProvider(configuration: configuration) } } } diff --git a/Sources/SwiftfulFirebaseAuth/Core/AuthManagerEnvironmentKey.swift b/Sources/SwiftfulFirebaseAuth/Core/AuthManagerEnvironmentKey.swift index 5e068dd..c5929f0 100644 --- a/Sources/SwiftfulFirebaseAuth/Core/AuthManagerEnvironmentKey.swift +++ b/Sources/SwiftfulFirebaseAuth/Core/AuthManagerEnvironmentKey.swift @@ -10,7 +10,7 @@ import SwiftUI public struct AuthManagerEnvironmentKey: EnvironmentKey { @MainActor - public static let defaultValue: AuthManager = AuthManager(configuration: .mock) + public static let defaultValue: AuthManager = AuthManager(configuration: .mock(.signInAndOut)) } public extension EnvironmentValues { diff --git a/Sources/SwiftfulFirebaseAuth/Providers/MockAuthProvider.swift b/Sources/SwiftfulFirebaseAuth/Providers/MockAuthProvider.swift index 73f19fa..e855f7b 100644 --- a/Sources/SwiftfulFirebaseAuth/Providers/MockAuthProvider.swift +++ b/Sources/SwiftfulFirebaseAuth/Providers/MockAuthProvider.swift @@ -28,8 +28,15 @@ final class MockAuthProvider: AuthProvider { } } - init() { - self.authenticatedUser = UserDefaults.userIsSignedIn ? MockAuthProvider.mockUser : nil + init(configuration: MockAuthConfiguration) { + switch configuration { + case .signInAndOut: + self.authenticatedUser = UserDefaults.userIsSignedIn ? MockAuthProvider.mockUser : nil + case .signedIn: + self.authenticatedUser = MockAuthProvider.mockUser + case .signedOut: + self.authenticatedUser = nil + } } private var continuation: AsyncStream.Continuation? = nil