in ApolloTests/WatchQueryTests.swift [7:61]
func testRefetchWatchedQuery() throws {
let query = HeroNameQuery()
let initialRecords: RecordSet = [
"QUERY_ROOT": ["hero": Reference(key: "hero")],
"hero": [
"name": "R2-D2",
"__typename": "Droid",
]
]
withCache(initialRecords: initialRecords) { (cache) in
let networkTransport = MockNetworkTransport(body: [
"data": [
"hero": [
"name": "Artoo",
"__typename": "Droid"
]
]
])
let store = ApolloStore(cache: cache)
let client = ApolloClient(networkTransport: networkTransport, store: store)
var verifyResult: OperationResultHandler<HeroNameQuery>
verifyResult = { (result, error) in
XCTAssertNil(error)
XCTAssertNil(result?.errors)
XCTAssertEqual(result?.data?.hero?.name, "R2-D2")
}
var expectation = self.expectation(description: "Fetching query")
let watcher = client.watch(query: query) { (result, error) in
verifyResult(result, error)
expectation.fulfill()
}
waitForExpectations(timeout: 5, handler: nil)
verifyResult = { (result, error) in
XCTAssertNil(error)
XCTAssertNil(result?.errors)
XCTAssertEqual(result?.data?.hero?.name, "Artoo")
}
expectation = self.expectation(description: "Refetching query")
watcher.refetch()
waitForExpectations(timeout: 5, handler: nil)
}
}