RadrootsAppleDocumentScannerTests.swift (1314B)
1 import Foundation 2 import Testing 3 @testable import RadrootsKit 4 5 #if !(canImport(UIKit) && canImport(VisionKit)) 6 @Test func appleDocumentScannerReportsUnavailableWithoutVisionKitScanner() async throws { 7 let scanner = try RadrootsAppleDocumentScanner(fileAccess: documentScannerTestFileAccess()) 8 let support = try await scanner.currentSupport() 9 10 #expect(!support.interactiveScanAvailable) 11 #expect(!support.multiPageSupported) 12 #expect(support.supportedOutputKinds.isEmpty) 13 14 await #expect(throws: RadrootsCaptureIntakeError.unavailable("document scanner is unavailable")) { 15 _ = try await scanner.scanDocument(RadrootsDocumentScanRequest()) 16 } 17 } 18 #endif 19 20 private func documentScannerTestFileAccess() throws -> RadrootsAppleFileAccess { 21 let root = FileManager.default.temporaryDirectory 22 .appendingPathComponent("radroots-document-scanner-\(UUID().uuidString)", isDirectory: true) 23 let roots = try RadrootsAppleFileRoots( 24 appIdentifier: "org.radroots.document-scanner-test", 25 dataRoot: root.appendingPathComponent("data", isDirectory: true), 26 cacheRoot: root.appendingPathComponent("cache", isDirectory: true), 27 temporaryRoot: root.appendingPathComponent("temporary", isDirectory: true) 28 ) 29 return RadrootsAppleFileAccess(roots: roots) 30 }