Skip to content

Commit

Permalink
Better error handling coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
carson-katri committed Feb 14, 2020
1 parent 79a1151 commit 8d297a4
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
10 changes: 6 additions & 4 deletions Sources/Request/Request/Request.swift
Original file line number Diff line number Diff line change
Expand Up @@ -154,14 +154,16 @@ public struct AnyRequest<ResponseType>/*: ObservableObject, Identifiable*/ where

// PERFORM REQUEST
URLSession.shared.dataTask(with: request) { data, res, err in
if res != nil {
let statusCode = (res as! HTTPURLResponse).statusCode
if let res = res as? HTTPURLResponse {
let statusCode = res.statusCode
if statusCode < 200 || statusCode >= 300 {
if self.onError != nil {
self.onError!(RequestError(statusCode: statusCode, error: data))
if let onError = self.onError {
onError(RequestError(statusCode: statusCode, error: data))
return
}
}
} else if let err = err, let onError = self.onError {
onError(RequestError(statusCode: -1, error: err.localizedDescription.data(using: .utf8)))
}
if let data = data {
if let onData = self.onData {
Expand Down
18 changes: 18 additions & 0 deletions Tests/RequestTests/RequestTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,23 @@ final class RequestTests: XCTestCase {
waitForExpectations(timeout: 10000)
XCTAssert(success)
}

func testError() {
let expectation = self.expectation(description: #function)
var success = false

Request {
Url("https://jsonplaceholder.typicode./todos")
}
.onError { err in
print(err)
success = true
expectation.fulfill()
}
.call()
waitForExpectations(timeout: 10000)
XCTAssert(success)
}

static var allTests = [
("simpleRequest", testSimpleRequest),
Expand All @@ -186,5 +203,6 @@ final class RequestTests: XCTestCase {
("requestGroup", testRequestGroup),
("requestChain", testRequestChain),
("anyRequest", testAnyRequest),
("testError", testError),
]
}

0 comments on commit 8d297a4

Please sign in to comment.