LocalData/Tests/LocalDataTests/AuditTests.swift
Matt Bruce 73d6f7ec8b Update Audit, Protocols, Services + tests + docs
Summary:
- Sources: Audit, Protocols, Services
- Tests: AuditTests.swift, ModularRegistryTests.swift, RouterErrorTests.swift, StorageCatalogTests.swift, SyncIntegrationTests.swift
- Docs: README
- Added symbols: protocol StorageKeyCatalog, extension StorageKeyCatalog, func registerCatalog
- Removed symbols: protocol StorageKeyCatalog, func registerCatalog

Stats:
- 9 files changed, 55 insertions(+), 46 deletions(-)
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 {
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(AuditCatalog())
#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))"))
}
}