36 lines
1.1 KiB
Swift
36 lines
1.1 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import LocalData
|
|
|
|
@Suite struct AnyStorageKeyTests {
|
|
|
|
private func makeStringKey(name: String) -> StorageKey<String> {
|
|
StorageKey(
|
|
name: name,
|
|
domain: .userDefaults(suite: nil),
|
|
security: .none,
|
|
owner: "Test",
|
|
description: "Test"
|
|
)
|
|
}
|
|
|
|
@Test func anyStorageKeyCapturesDescriptor() {
|
|
let key = makeStringKey(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 = makeStringKey(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)
|
|
}
|
|
}
|