Log complete error description

This commit is contained in:
kean
2022-07-30 18:03:06 -04:00
parent 667d631475
commit 6eef4c5fd5
3 changed files with 17 additions and 6 deletions
@@ -65,7 +65,7 @@ public struct NetworkLoggerError: Codable {
} else {
self.domain = error.domain
}
self.debugDescription = (error.userInfo[NSDebugDescriptionErrorKey] as? String) ?? error.debugDescription
self.debugDescription = String(describing: error)
self.error = error
}
@@ -260,7 +260,7 @@ public enum NetworkLoggerDecodingError: Error, Codable {
case dataCorrupted(context: Context)
case unknown
public static let domain = "NetworkLoggerDecodingError"
public static let domain = "DecodingError"
public struct Context: Codable {
public let codingPath: [CodingKey]
+12 -1
View File
@@ -313,7 +313,18 @@ private let mockPatchRepoResponseBody = """
}
""".data(using: .utf8)!
private let mockPatchRepoDecodingError = NetworkLoggerDecodingError.typeMismatch(type: "Int", context: .init(codingPath: [.string("id")], debugDescription: "TypeMismatch"))
private let mockPatchRepoDecodingError: Error = {
struct Repo: Decodable {
let id: String
let node: String
}
do {
_ = try JSONDecoder().decode(Repo.self, from: mockPatchRepoResponseBody)
return URLError(.unknown)
} catch {
return error
}
}()
// MARK: - Download (GET)
+3 -3
View File
@@ -29,8 +29,8 @@ final class NetworkLoggerTests: XCTestCase {
_ = try JSONDecoder().decode(Repo.self, from: data)
XCTFail("Expected decoding to fail")
} catch {
let error = NetworkLoggerError(error)
let encoded = try JSONEncoder().encode(error)
let networkError = NetworkLoggerError(error)
let encoded = try JSONEncoder().encode(networkError)
let decoded = try JSONDecoder().decode(NetworkLoggerError.self, from: encoded)
let decodingError = try XCTUnwrap(decoded.error as? NetworkLoggerDecodingError)
switch decodingError {
@@ -38,7 +38,7 @@ final class NetworkLoggerTests: XCTestCase {
XCTAssertEqual(type, "String")
XCTAssertEqual(context.codingPath, [.string("id")])
default:
XCTFail("Unexpected error: \(error)")
XCTFail("Unexpected error: \(networkError)")
}
}
}