Luminate/Sources/LuminateCore/PersistenceService+Mock.swift

42 lines
950 B
Swift

//
// PersistenceService+Mock.swift
// LuminateCore
//
// Created by Brendan Szymanski on 6/10/26.
//
import Foundation
public final class MockPersistenceService: @unchecked Sendable, PersistenceService {
private var authData: AuthData?
private var preferences: [String: String] = [:]
public init() {}
public func loadAuth() async throws -> AuthData {
guard let authData else { throw PersistenceError.notFound }
return authData
}
public func saveAuth(_ auth: AuthData) async throws {
authData = auth
}
public func clearAuth() async throws {
authData = nil
}
public func getPreference(key: String) async throws -> String? {
preferences[key]
}
public func setPreference(key: String, value: String) async throws {
preferences[key] = value
}
public func clearAll() async throws {
authData = nil
preferences = [:]
}
}