import Foundation import Testing @testable import LocalData @Suite struct AnyStorageKeyTests { private struct StringKey: StorageKey { typealias Value = String let name: String let domain: StorageDomain = .userDefaults(suite: nil) let security: SecurityPolicy = .none let serializer: Serializer = .json let owner: String = "Test" let description: String = "Test" let availability: PlatformAvailability = .all let syncPolicy: SyncPolicy = .never } @Test func anyStorageKeyCapturesDescriptor() { let key = StringKey(name: "test.key") let anyKey = AnyStorageKey.key(key) #expect(anyKey.descriptor.name == "test.key") #expect(anyKey.descriptor.owner == "Test") #expect(anyKey.descriptor.valueType == "String") } @Test func anyStorageKeyTriggersMigration() async throws { let router = StorageRouter(keychain: MockKeychainHelper()) let key = StringKey(name: "test.key") let anyKey = AnyStorageKey.key(key) // This will call router.forceMigration(for: key) // Since there is no migration configured, it just returns try await anyKey.migrate(on: router) } }