From cb59a41d678747603bb73c6e5561a1e06410106f Mon Sep 17 00:00:00 2001 From: JP-Ellis Date: Fri, 20 Mar 2026 15:03:58 +1100 Subject: [PATCH] fix: make XCTest import conditional MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wrap `import XCTest` in `ErrorReporter.swift` with `#if canImport(XCTest)` so PactSwift compiles with the standalone Swift toolchain (e.g. mise-managed swift.org builds) where XCTest is not available without Xcode's SDK. - On Apple platforms with Xcode: XCTest path unchanged, `XCTFail` used as before. - Without XCTest (standalone toolchain, Linux): `preconditionFailure` fallback. `ProviderVerifier.swift` had a superfluous `import XCTest` that was unused at the call site (all XCTest usage is in `ErrorReporter`) — removed. Signed-off-by: JP-Ellis --- Sources/Model/ErrorReporter.swift | 20 ++++++++++++++++++++ Sources/ProviderVerifier.swift | 1 - 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Sources/Model/ErrorReporter.swift b/Sources/Model/ErrorReporter.swift index a9712c46..8bdcf71e 100644 --- a/Sources/Model/ErrorReporter.swift +++ b/Sources/Model/ErrorReporter.swift @@ -16,6 +16,8 @@ // import Foundation + +#if canImport(XCTest) import XCTest class ErrorReporter: ErrorReportable { @@ -31,3 +33,21 @@ class ErrorReporter: ErrorReportable { } } + +#else + +class ErrorReporter: ErrorReportable { + + /// Reports test failure in file and on line where this method is called + func reportFailure(_ message: String) { + preconditionFailure(message) + } + + /// Reports test failure in provided file and on provided line + func reportFailure(_ message: String, file: FileString, line: UInt) { + preconditionFailure("\(file):\(line): \(message)") + } + +} + +#endif diff --git a/Sources/ProviderVerifier.swift b/Sources/ProviderVerifier.swift index c2b94ff4..f3737753 100644 --- a/Sources/ProviderVerifier.swift +++ b/Sources/ProviderVerifier.swift @@ -16,7 +16,6 @@ // import Foundation -import XCTest import PactSwiftMockServer