Skip to content

Commit

Permalink
Merge pull request #10 from SwiftfulThinking/mock_auth_status
Browse files Browse the repository at this point in the history
Add mock status support
  • Loading branch information
SwiftfulThinking authored May 27, 2024
2 parents 1c98161 + 2da0a2e commit 683a61b
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
10 changes: 7 additions & 3 deletions Sources/SwiftfulFirebaseAuth/Core/AuthManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
11 changes: 9 additions & 2 deletions Sources/SwiftfulFirebaseAuth/Providers/MockAuthProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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<UserAuthInfo?>.Continuation? = nil
Expand Down

0 comments on commit 683a61b

Please sign in to comment.