Skip to content

Commit

Permalink
added test for returning different errors
Browse files Browse the repository at this point in the history
  • Loading branch information
RolandasRazma committed Apr 7, 2020
1 parent 60cb840 commit 6d33ee1
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions Tests/ApolloTests/HTTPTransportTests.swift
Expand Up @@ -190,6 +190,65 @@ class HTTPTransportTests: XCTestCase {
self.wait(for: [expectation], timeout: 10)
}

func testRetryDelegateReturnsCorrectError() throws {

class MockRetryDelegate: HTTPNetworkTransportRetryDelegate {
var mockError: Error?

func networkTransport(_ networkTransport: HTTPNetworkTransport,
receivedError error: Error,
for request: URLRequest,
response: URLResponse?,
continueHandler: @escaping (HTTPNetworkTransport.ContinueAction) -> Void) {
continueHandler(.fail(mockError ?? error))
}
}

let mockRetryDelegate = MockRetryDelegate()

let transport = HTTPNetworkTransport(url: URL(string: "http://localhost:8080/graphql_non_existant")!)
transport.delegate = mockRetryDelegate

let expectationErrorResponse = self.expectation(description: "Send operation completed")

let _ = transport.send(operation: HeroNameQuery()) { result in
switch result {
case .success:
XCTAssertTrue(false)
expectationErrorResponse.fulfill()
case .failure(let error):
XCTAssertTrue(error is GraphQLHTTPResponseError)
expectationErrorResponse.fulfill()
break
}
}

wait(for: [expectationErrorResponse], timeout: 1)

enum MockError: Error, Equatable {
case customError
}

mockRetryDelegate.mockError = MockError.customError

let expectationCustomError = self.expectation(description: "Send operation completed")

let _ = transport.send(operation: HeroNameQuery()) { result in
switch result {
case .success:
XCTAssertTrue(false)
expectationCustomError.fulfill()
case .failure(let error):
XCTAssertTrue(error is MockError)
expectationCustomError.fulfill()
break
}
}

wait(for: [expectationCustomError], timeout: 1)

}

func testEquality() {
let identicalTransport = HTTPNetworkTransport(url: self.url,
useGETForQueries: true)
Expand Down

0 comments on commit 6d33ee1

Please sign in to comment.