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