LocalData/Tests/LocalDataTests/LocalDataTests.swift
Matt Bruce 8e3e754e43 Tests: update tests for AnyStorageKeyTests.swift, AuditTests.swift, LocalDataTests.swift (+13 more)
Summary:
- Tests: update tests for AnyStorageKeyTests.swift, AuditTests.swift, LocalDataTests.swift (+13 more)

Stats:
- 16 files changed, 329 insertions(+), 386 deletions(-)
2026-01-18 13:43:11 -06:00

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