Summary: - Tests: update tests for AnyStorageKeyTests.swift, AuditTests.swift, LocalDataTests.swift (+13 more) Stats: - 16 files changed, 329 insertions(+), 386 deletions(-)
73 lines
2.2 KiB
Swift
73 lines
2.2 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import LocalData
|
|
|
|
private func makeUserDefaultsKey(name: String, suiteName: String) -> StorageKey<String> {
|
|
StorageKey(
|
|
name: name,
|
|
domain: .userDefaults(suite: suiteName),
|
|
security: .none,
|
|
owner: "LocalDataTests",
|
|
description: "Test-only key for user defaults round-trip."
|
|
)
|
|
}
|
|
|
|
private func makeFileKey(name: String, directory: URL) -> StorageKey<String> {
|
|
StorageKey(
|
|
name: name,
|
|
domain: .fileSystem(directory: .custom(directory)),
|
|
security: .none,
|
|
owner: "LocalDataTests",
|
|
description: "Test-only key for file system round-trip."
|
|
)
|
|
}
|
|
|
|
@Suite(.serialized)
|
|
struct LocalDataTests {
|
|
private let router = StorageRouter(keychain: MockKeychainHelper())
|
|
|
|
@Test func userDefaultsRoundTrip() async throws {
|
|
let suiteName = "LocalDataTests.\(UUID().uuidString)"
|
|
defer {
|
|
if let defaults = UserDefaults(suiteName: suiteName) {
|
|
defaults.removePersistentDomain(forName: suiteName)
|
|
}
|
|
}
|
|
|
|
let key = makeUserDefaultsKey(name: "test.string", suiteName: suiteName)
|
|
let storedValue = "1.0.0"
|
|
|
|
try await router.set(storedValue, for: key)
|
|
let fetched = try await router.get(key)
|
|
|
|
#expect(fetched == storedValue)
|
|
|
|
try await router.remove(key)
|
|
await #expect(throws: StorageError.notFound) {
|
|
_ = try await router.get(key)
|
|
}
|
|
}
|
|
|
|
@Test func fileSystemRoundTrip() async throws {
|
|
let tempDirectory = FileManager.default.temporaryDirectory
|
|
.appending(path: "LocalDataTests")
|
|
.appending(path: UUID().uuidString)
|
|
defer {
|
|
try? FileManager.default.removeItem(at: tempDirectory)
|
|
}
|
|
|
|
let key = makeFileKey(name: "test.json", directory: tempDirectory)
|
|
let storedValue = "payload"
|
|
|
|
try await router.set(storedValue, for: key)
|
|
let fetched = try await router.get(key)
|
|
|
|
#expect(fetched == storedValue)
|
|
|
|
try await router.remove(key)
|
|
await #expect(throws: StorageError.notFound) {
|
|
_ = try await router.get(key)
|
|
}
|
|
}
|
|
}
|