LocalData/Tests/LocalDataTests/FileStorageHelperTests.swift
Matt Bruce 66001439e3 Update Configuration, Helpers, Models (+1 more) + tests
Summary:
- Sources: Configuration, Helpers, Models, Services
- Tests: AppGroupTests.swift, FileStorageHelperExpansionTests.swift, FileStorageHelperTests.swift, MigrationTests.swift, RouterConfigurationTests.swift (+5 more)
- Added symbols: func resolveDirectoryURL, func handleReceivedContext, enum KeychainAccessControl, enum KeychainAccessibility, enum SecurityPolicy, enum EncryptionPolicy (+5 more)
- Removed symbols: func resolveDirectoryURL, func handleReceivedContext, enum KeychainAccessControl, enum KeychainAccessibility, enum SecurityPolicy, enum EncryptionPolicy (+1 more)

Stats:
- 18 files changed, 306 insertions(+), 58 deletions(-)
2026-01-18 14:53:29 -06:00

56 lines
2.1 KiB
Swift

import Foundation
import Testing
@testable import LocalData
@Suite struct FileStorageHelperTests {
private let helper: FileStorageHelper
private let testBaseURL: URL
init() {
testBaseURL = FileManager.default.temporaryDirectory.appending(path: "LocalDataTests-\(UUID().uuidString)")
helper = FileStorageHelper(configuration: FileStorageConfiguration(baseURL: testBaseURL))
}
@Test func documentsDirectoryRoundTrip() async throws {
let fileName = "test_file_\(UUID().uuidString).data"
let data = Data("file-content".utf8)
try await helper.write(data, to: .documents, fileName: fileName)
let exists = await helper.exists(in: .documents, fileName: fileName)
#expect(exists == true)
let retrieved = try await helper.read(from: .documents, fileName: fileName)
#expect(retrieved == data)
let size = try await helper.size(of: .documents, fileName: fileName)
#expect(size == Int64(data.count))
let list = try await helper.list(in: .documents)
#expect(list.contains(fileName))
try await helper.delete(from: .documents, fileName: fileName)
let afterDelete = await helper.exists(in: .documents, fileName: fileName)
#expect(afterDelete == false)
}
@Test func customDirectoryCreation() async throws {
let tempDir = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString)
let fileName = "custom.txt"
let data = Data("custom".utf8)
try await helper.write(data, to: .custom(tempDir), fileName: fileName)
let retrieved = try await helper.read(from: .custom(tempDir), fileName: fileName)
#expect(retrieved == data)
// Cleanup
try? FileManager.default.removeItem(at: tempDir)
}
@Test func readNonExistentFileReturnsNil() async throws {
let result = try await helper.read(from: .caches, fileName: "nonexistent_\(UUID().uuidString)")
#expect(result == nil)
}
}