Files
reimburse/tests/FolderImportSourceTests.swift
T
2026-09-16 13:07:16 +08:00

36 lines
1.5 KiB
Swift

import Foundation
@main
struct FolderImportSourceTests {
static func rejects(_ sources: [URL]) {
do {
_ = try FolderImportSource.validate(sources)
preconditionFailure("Unexpectedly accepted \(sources)")
} catch {
precondition(!error.localizedDescription.isEmpty)
}
}
static func main() throws {
let root = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString, isDirectory: true)
try FileManager.default.createDirectory(at: root, withIntermediateDirectories: true)
defer { try? FileManager.default.removeItem(at: root) }
let folder = root.appendingPathComponent("报销 材料", isDirectory: true)
try FileManager.default.createDirectory(at: folder, withIntermediateDirectories: true)
let validated = try FolderImportSource.validate([folder])
precondition(validated == folder)
let file = root.appendingPathComponent("发票.pdf")
try Data().write(to: file)
let application = root.appendingPathComponent("测试.app", isDirectory: true)
try FileManager.default.createDirectory(at: application, withIntermediateDirectories: true)
rejects([])
rejects([folder, folder])
rejects([folder, file])
rejects([file])
rejects([application])
rejects([URL(string: "https://example.invalid/materials")!])
rejects([root.appendingPathComponent("不存在")])
print("Folder import validation tests passed")
}
}