Summary: - Tests: add tests for AnyCodableTests.swift, AnyStorageKeyTests.swift, AuditTests.swift (+8 more) Stats: - 11 files changed, 698 insertions(+)
38 lines
1.2 KiB
Swift
38 lines
1.2 KiB
Swift
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<String> = .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.migrate(for: key)
|
|
// Since there are no migration sources, it just returns
|
|
try await anyKey.migrate(on: router)
|
|
}
|
|
}
|