LocalData/Tests/LocalDataTests/AuditTests.swift

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))"))
}
}