Files
2026-07-13 12:22:33 +08:00

36 lines
1.0 KiB
Swift

import Foundation
#if DEBUG
extension ClaudeOAuthCredentialsStore {
final class ClaudeKeychainOverrideStore: @unchecked Sendable {
var data: Data?
var fingerprint: ClaudeKeychainFingerprint?
init(data: Data? = nil, fingerprint: ClaudeKeychainFingerprint? = nil) {
self.data = data
self.fingerprint = fingerprint
}
}
@TaskLocal static var taskClaudeKeychainOverrideStore: ClaudeKeychainOverrideStore?
static func withMutableClaudeKeychainOverrideStoreForTesting<T>(
_ store: ClaudeKeychainOverrideStore?,
operation: () throws -> T) rethrows -> T
{
try self.$taskClaudeKeychainOverrideStore.withValue(store) {
try operation()
}
}
static func withMutableClaudeKeychainOverrideStoreForTesting<T>(
_ store: ClaudeKeychainOverrideStore?,
operation: () async throws -> T) async rethrows -> T
{
try await self.$taskClaudeKeychainOverrideStore.withValue(store) {
try await operation()
}
}
}
#endif