git.iko.soy/parseable-macos
on master help sign in
Fix server error messages to show actual error instead of generic URL hint (#8)
2d089aaiko
ParseableViewer/Services/ParseableClient.swift+1−1
@@ -30,7 +30,7 @@ enum ParseableError: LocalizedError {
30 return "The server URL is invalid. Check the format (e.g. https://host:port)."
30 return "The server URL is invalid. Check the format (e.g. https://host:port)."
31 case .serverError(let code, let message):
31 case .serverError(let code, let message):
32 let trimmed = message.trimmingCharacters(in: .whitespacesAndNewlines)
32 let trimmed = message.trimmingCharacters(in: .whitespacesAndNewlines)
33− if trimmed.isEmpty {
33+ if trimmed.isEmpty || trimmed == "Unknown error" {
34 return "Server returned error \(code)."
34 return "Server returned error \(code)."
35 }
35 }
36 return "Server error (\(code)): \(trimmed)"
36 return "Server error (\(code)): \(trimmed)"
ParseableViewerTests/ParseableClientTests.swift+5
@@ -260,6 +260,11 @@ final class ParseableClientTests: XCTestCase {
260 XCTAssertEqual(msg, "Server error (400): bad query")
260 XCTAssertEqual(msg, "Server error (400): bad query")
261 }
261 }
262
262
263+ func testUserFriendlyMessageForServerErrorUnknown() {
264+ let msg = ParseableError.userFriendlyMessage(for: ParseableError.serverError(400, "Unknown error"))
265+ XCTAssertEqual(msg, "Server returned error 400.")
266+ }
267+
263 func testUserFriendlyMessageForInvalidURL() {
268 func testUserFriendlyMessageForInvalidURL() {
264 let msg = ParseableError.userFriendlyMessage(for: ParseableError.invalidURL)
269 let msg = ParseableError.userFriendlyMessage(for: ParseableError.invalidURL)
265 XCTAssertTrue(msg.lowercased().contains("url"))
270 XCTAssertTrue(msg.lowercased().contains("url"))