From 6eef4c5fd5deb7f8f7d3bc24da51ec4adeecd900 Mon Sep 17 00:00:00 2001 From: kean Date: Sat, 30 Jul 2022 18:03:06 -0400 Subject: [PATCH] Log complete error description --- Sources/PulseCore/NetworkLoggerEntities.swift | 4 ++-- Sources/PulseUI/Mocks/MockTask.swift | 13 ++++++++++++- Tests/PulseTests/NetworkLoggerTests.swift | 6 +++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Sources/PulseCore/NetworkLoggerEntities.swift b/Sources/PulseCore/NetworkLoggerEntities.swift index a2f80ec4..2b144a86 100644 --- a/Sources/PulseCore/NetworkLoggerEntities.swift +++ b/Sources/PulseCore/NetworkLoggerEntities.swift @@ -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] diff --git a/Sources/PulseUI/Mocks/MockTask.swift b/Sources/PulseUI/Mocks/MockTask.swift index 1727afcb..80289931 100644 --- a/Sources/PulseUI/Mocks/MockTask.swift +++ b/Sources/PulseUI/Mocks/MockTask.swift @@ -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) diff --git a/Tests/PulseTests/NetworkLoggerTests.swift b/Tests/PulseTests/NetworkLoggerTests.swift index cb28f67d..eaf4c9c2 100644 --- a/Tests/PulseTests/NetworkLoggerTests.swift +++ b/Tests/PulseTests/NetworkLoggerTests.swift @@ -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)") } } }