[Shared] Fixes pattern matching non-ALTErrorEnum error codes

This commit is contained in:
Riley Testut
2022-12-20 14:01:54 -06:00
parent 39cc0b5da5
commit a9bb0c11a4
2 changed files with 32 additions and 1 deletions

View File

@@ -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"

View File

@@ -107,7 +107,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
}
}