LocalData/Tests/LocalDataTests/AuditTests.swift
Matt Bruce e27e2e38bb Tests AnyCodableTests.swift, AnyStorageKeyTests.swift, AuditTests.swift (+8 more)
Summary:
- Tests: AnyCodableTests.swift, AnyStorageKeyTests.swift, AuditTests.swift, EncryptionLogicTests.swift, FileStorageHelperTests.swift (+6 more)
- Added symbols: struct NonCodable, struct StringKey, typealias Value, struct AuditCatalog, struct TestKey, struct RawProvider (+11 more)

Stats:
- 11 files changed, 698 insertions(+)
2026-01-18 14:53:29 -06:00

57 lines
2.1 KiB
Swift

import Foundation
import Testing
@testable import LocalData
@Suite struct AuditTests {
private struct AuditCatalog: StorageKeyCatalog {
static var allKeys: [AnyStorageKey] {
[
.key(TestKey(name: "k1", domain: .userDefaults(suite: nil))),
.key(TestKey(name: "k2", domain: .keychain(service: "s"), security: .keychain(accessibility: .afterFirstUnlock, accessControl: .userPresence))),
.key(TestKey(name: "k3", domain: .fileSystem(directory: .documents))),
.key(TestKey(name: "k4", domain: .encryptedFileSystem(directory: .caches))),
.key(TestKey(name: "k5", domain: .appGroupUserDefaults(identifier: "ig"), security: .encrypted(.recommended)))
]
}
}
private struct TestKey: StorageKey {
typealias Value = String
let name: String
let domain: StorageDomain
let security: SecurityPolicy
let serializer: Serializer<String> = .json
let owner: String = "Audit"
let description: String = "Desc"
let availability: PlatformAvailability = .all
let syncPolicy: SyncPolicy = .never
init(name: String, domain: StorageDomain, security: SecurityPolicy = .none) {
self.name = name
self.domain = domain
self.security = security
}
}
@Test func renderCatalogText() {
let text = StorageAuditReport.renderText(for: AuditCatalog.self)
#expect(text.contains("name=k1"))
#expect(text.contains("domain=userDefaults(standard)"))
#expect(text.contains("name=k2"))
#expect(text.contains("keychain(After First Unlock, User Presence)"))
#expect(text.contains("name=k3"))
#expect(text.contains("fileSystem(documents)"))
#expect(text.contains("name=k4"))
#expect(text.contains("encryptedFileSystem(caches)"))
#expect(text.contains("name=k5"))
#expect(text.contains("appGroupUserDefaults(ig)"))
#expect(text.contains("security=encrypted(chacha20Poly1305(hkdf))"))
}
}