Skip to content

Commit 9370e43

Browse files
committed
[SwiftRefactor] Replace custom XCTAssertThrows with XCTAssertThrowsError
Removes `XCTAssertThrows` in favor of XCTest standard way of testing throwing functions.
1 parent a1ac7ca commit 9370e43

File tree

3 files changed

+16
-35
lines changed

3 files changed

+16
-35
lines changed

Sources/SwiftRefactor/PackageManifest/ManifestEditError.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ import SwiftSyntax
1414

1515
/// An error describing problems that can occur when attempting to edit a
1616
/// package manifest programattically.
17-
public enum ManifestEditError: Error {
17+
public enum ManifestEditError: Error, Equatable {
1818
case cannotFindPackage
1919
case cannotFindTargets
2020
case cannotFindTarget(targetName: String)
21-
case cannotFindArrayLiteralArgument(argumentName: String, node: Syntax)
21+
case cannotFindArrayLiteralArgument(argumentName: String)
2222
}
2323

2424
extension ManifestEditError: CustomStringConvertible {
@@ -30,7 +30,7 @@ extension ManifestEditError: CustomStringConvertible {
3030
return "unable to find package targets in manifest"
3131
case .cannotFindTarget(targetName: let name):
3232
return "unable to find target named '\(name)' in package"
33-
case .cannotFindArrayLiteralArgument(argumentName: let name, node: _):
33+
case .cannotFindArrayLiteralArgument(argumentName: let name):
3434
return "unable to find array literal for '\(name)' argument"
3535
}
3636
}

Sources/SwiftRefactor/PackageManifest/SyntaxEditUtils.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -468,8 +468,7 @@ extension FunctionCallExprSyntax {
468468
if let arg = findArgument(labeled: label) {
469469
guard let argArray = arg.expression.findArrayArgument() else {
470470
throw ManifestEditError.cannotFindArrayLiteralArgument(
471-
argumentName: label,
472-
node: Syntax(arg.expression)
471+
argumentName: label
473472
)
474473
}
475474

Tests/SwiftRefactorTest/ManifestEditTests.swift

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ final class ManifestEditTests: XCTestCase {
244244
}
245245

246246
func testAddPackageDependencyErrors() {
247-
XCTAssertThrows(
247+
XCTAssertThrowsError(
248248
try AddPackageDependency.manifestRefactor(
249249
syntax: """
250250
// swift-tools-version: 5.5
@@ -254,15 +254,14 @@ final class ManifestEditTests: XCTestCase {
254254
""",
255255
in: .init(dependency: Self.swiftSystemPackageDependency)
256256
)
257-
) { (error: ManifestEditError) in
258-
if case .cannotFindPackage = error {
259-
return true
260-
} else {
261-
return false
262-
}
257+
) { error in
258+
XCTAssertEqual(
259+
error as? ManifestEditError,
260+
.cannotFindPackage
261+
)
263262
}
264263

265-
XCTAssertThrows(
264+
XCTAssertThrowsError(
266265
try AddPackageDependency.manifestRefactor(
267266
syntax: """
268267
// swift-tools-version: 5.5
@@ -273,12 +272,11 @@ final class ManifestEditTests: XCTestCase {
273272
""",
274273
in: .init(dependency: Self.swiftSystemPackageDependency)
275274
)
276-
) { (error: ManifestEditError) in
277-
if case .cannotFindArrayLiteralArgument(argumentName: "dependencies", node: _) = error {
278-
return true
279-
} else {
280-
return false
281-
}
275+
) { (error: any Error) in
276+
XCTAssertEqual(
277+
error as? ManifestEditError,
278+
.cannotFindArrayLiteralArgument(argumentName: "dependencies")
279+
)
282280
}
283281
}
284282

@@ -710,19 +708,3 @@ func assertManifestRefactor(
710708
"didn't get all of the auxiliary files we expected"
711709
)
712710
}
713-
714-
func XCTAssertThrows<T: Swift.Error, Ignore>(
715-
_ expression: @autoclosure () throws -> Ignore,
716-
file: StaticString = #filePath,
717-
line: UInt = #line,
718-
_ errorHandler: (T) -> Bool
719-
) {
720-
do {
721-
let result = try expression()
722-
XCTFail("body completed successfully: \(result)", file: file, line: line)
723-
} catch let error as T {
724-
XCTAssertTrue(errorHandler(error), "Error handler returned false", file: file, line: line)
725-
} catch {
726-
XCTFail("unexpected error thrown: \(error)", file: file, line: line)
727-
}
728-
}

0 commit comments

Comments
 (0)