diff options
Diffstat (limited to 'HutchTests/SRHTClientTests.swift')
| -rw-r--r-- | HutchTests/SRHTClientTests.swift | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/HutchTests/SRHTClientTests.swift b/HutchTests/SRHTClientTests.swift index 2ce2529..12d6d0f 100644 --- a/HutchTests/SRHTClientTests.swift +++ b/HutchTests/SRHTClientTests.swift @@ -24,4 +24,33 @@ struct SRHTClientTests { Issue.record("Expected SRHTError.invalidAuthenticatedURL, got \(error).") } } + + @Test + func graphQLErrorUserFacingMessagePreservesValidationDetails() { + let error = SRHTError.graphQLErrors([ + GraphQLError(message: "A tracker named bugs already exists", locations: nil) + ]) + + #expect(error.userFacingMessage == "A tracker named bugs already exists") + } + + @Test + func graphQLErrorUserFacingMessageClassifiesNotFoundResponses() { + let error = SRHTError.graphQLErrors([ + GraphQLError(message: "reference not found", locations: nil) + ]) + + #expect(error.userFacingMessage == "That content is no longer available.") + #expect(error.matchesGraphQLErrorClassification(.missingReference)) + } + + @Test + func graphQLErrorUserFacingMessageClassifiesServiceProvisioningFailures() { + let error = SRHTError.graphQLErrors([ + GraphQLError(message: "No such repository or user found", locations: nil) + ]) + + #expect(error.userFacingMessage == "That account needs to activate this SourceHut service before this action can succeed.") + #expect(error.matchesGraphQLErrorClassification(.serviceNotProvisioned)) + } } |
