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(-)
57 lines
2.1 KiB
Swift
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))"))
|
|
}
|
|
}
|