apollographql / apollographql/fullstack-tutorial
Integration Tests Not Properly Mocked
- Vorherrschende Sprache
- TypeScript
- Sterne
- 1.2k
- Forks
- 808
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I followed the integration tests example pattern in my own app.
```
// mock the datasources' underlying fetch methods, whether that's a REST
// lookup in the RESTDataSource or the store query in the Sequelize datasource
launchAPI.get = jest.fn(() => [mockLaunchResponse]);
```
However I noticed it was still making api calls to the rest endpoint. I then cloned this repo turned off my wifi and ran the integration tests and sure enough I got an error.
```
errors": Array [
+ Object {
+ "extensions": Object {
+ "code": "INTERNAL_SERVER_ERROR",
+ "exception": Object {
+ "code": "ENOTFOUND",
+ "errno": "ENOTFOUND",
+ "message": "request to https://api.spacexdata.com/v2/launches?flight_number=30 failed, reason: getaddrinfo ENOTFOUND api.spacexdata.com api.spacexdata.com:443",
+ "type": "system",
+ },
},
- "rocket": Object {
- "type": "FT",
- },
+ "locations": Array [
+ Object {
+ "column": 3,
+ "line": 2,
+ },
+ ],
+ "message": "request to https://api.spacexdata.com/v2/launches?flight_number=30 failed, reason: getaddrinfo ENOTFOUND api.spacexdata.com api.spacexdata.com:443",
+ "path": Array [
+ "launch",
+ ],
```
This tells me that `launchAPI.get` is not being properly mocked. Which I think would make sense as there is no `launchAPI.get` however there is a `launchAPI.prototype.get` however that doesn't seem to work when I change the tests to that.
Any ideas?
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, die Integrationstests mit deaktiviertem Netzwerk auszuführen, und untersuche das Beispiel, das launchAPI.get zuweist. Verfolge anschließend, welche RESTDataSource-Methode die Launch-Suche verarbeitet. Im Issue werden keine Dateien oder Testbefehle genannt; als erledigt gilt die Aufgabe, wenn die Integrationstests offline bestehen, ohne api.spacexdata.com anzufordern, und weiterhin die erwarteten Raketendaten zurückgeben.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- graphql, node.js, typescript
- Bereich
- api, backend, testing
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100