diff --git a/AltTests/AltTests.swift b/AltTests/AltTests.swift index 12d9d2b5..2eaab3ae 100644 --- a/AltTests/AltTests.swift +++ b/AltTests/AltTests.swift @@ -427,6 +427,37 @@ extension AltTests } } + func testPatternMatchingErrorCode() async throws + { + do + { + // ALTLocalizedError + throw OperationError.serverNotFound + } + catch ~OperationError.Code.serverNotFound + { + // Success + } + catch + { + XCTFail("Failed to catch error as OperationError.Code.serverNotFound: \(error)") + } + + do + { + // ALTErrorEnum + throw AuthenticationError(.noTeam) + } + catch ~AuthenticationErrorCode.noTeam + { + // Success + } + catch + { + XCTFail("Failed to catch error as AuthenticationErrorCode.noTeam: \(error)") + } + } + func testWithLocalizedTitle() async throws { let localizedTitle = "AltTest Failed" diff --git a/Shared/Errors/ALTLocalizedError.swift b/Shared/Errors/ALTLocalizedError.swift index 6e01fbc3..1d3aeaef 100644 --- a/Shared/Errors/ALTLocalizedError.swift +++ b/Shared/Errors/ALTLocalizedError.swift @@ -102,7 +102,7 @@ public extension ALTErrorCode { static var errorDomain: String { let typeName = String(reflecting: Self.self) // "\(Self.self)" doesn't include module name, but String(reflecting:) does. - let errorDomain = typeName.replacingOccurrences(of: "ErrorCode", with: "Error") + let errorDomain = typeName.replacingOccurrences(of: "ErrorCode", with: "Error").replacingOccurrences(of: "Error.Code", with: "Error") return errorDomain } }