Axios: Jest et Nock renvoient une erreur réseau lors de demandes avec Axios

Créé le 5 juin 2017  ·  3Commentaires  ·  Source: axios/axios

Résumé

Tester le code async avec Jest ou Nock renvoie toujours une erreur de réseau.

Ceci est rapporté par d'autres:
https://www.bountysource.com/issues/38003315-network-error-when-using-nock-with-axios
https://stackoverflow.com/questions/42677387/jest-returns-network-error-when-doing-an-authenticated-request-with-axios

J'ai en fait utilisé la première solution suggérée sur ce StackOverflow: "Solution change axios adapter to http". Cela fonctionne réellement.

Sans forcer l'adaptateur http, l'exécution de "npm test" avec Jest fait en sorte que le test ne se termine jamais et reste bloqué pour toujours.

Je ne suis pas sûr que ce soit un problème Axios plutôt que Jest ou Nock et ce n'est pas le sujet.

Ce qui est étrange, c'est le stacktrace ci-dessous : il me semble qu'il exécute l'implémentation xhr. N'est-ce pas étrange dans l'environnement de nœud ?
Existe-t-il un moyen plus simple de forcer l'utilisation de l'adaptateur http que celui conseillé sur StackOverflow ?

Erreur réseau

 à createError (node_modules/axios/lib/core/createError.js:16:15)
 à XMLHttpRequest.handleError [as onerror] (node_modules/axios/lib/adapters/xhr.js:87:14)
 à XMLHttpRequest.callback.(fonction anonyme) (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:289:32)
 à invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:219:27)
 à invokeInlineListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:166:7)
 à EventTargetImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:122:7)
 à EventTargetImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:87:17)
 à XMLHttpRequest.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:61:35)
 à dispatchError (node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js:994:9)
 à validCORSHeaders (node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js:1009:7)
 à receiveResponse (node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js:871:12)
 à EventEmitter.client.on.res (node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js:691:38)
 àemitOne (events.js:96:13)
 à EventEmitter.emit (events.js:191:7)
 à Request.realClient.on.res (node_modules/jsdom/lib/jsdom/living/xhr-utils.js:281:49)
 àemitOne (events.js:96:13)
 à Request.emit (events.js:191:7)
 à Request.onRequestResponse (node_modules/request/request.js:1074:10)
 à émetOne (events.js:101:20)
 à ClientRequest.emit (events.js:191:7)
 sur HTTPParser.parserOnIncomingClient (_http_client.js:522:21)
 à HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
 à Socket.socketOnData (_http_client.js:411:20)
 àemitOne (events.js:96:13)
 à Socket.emit (events.js:191:7)
 à readableAddChunk (_stream_readable.js:178:18)
 à Socket.Readable.push (_stream_readable.js:136:10)
 à TCP.onread (net.js:561:20)

Le contexte

  • version axios : v0.16.2
  • Environnement : nœud v7.10, Ubuntu 17.04 Linux 4.10

Commentaire le plus utile

Si vous jetez un œil à votre trace de pile, vous remarquerez qu'il y a des traces de jsdom. Cela signifie que vous utilisez un environnement jsdom/browser plutôt que node. C'est juste un problème de configuration de plaisanterie.

Tous les 3 commentaires

Si vous jetez un œil à votre trace de pile, vous remarquerez qu'il y a des traces de jsdom. Cela signifie que vous utilisez un environnement jsdom/browser plutôt que node. C'est juste un problème de configuration de plaisanterie.

J'ai changé le script de test dans package.json en "test": "react-scripts test --env=node" mais cela ne fonctionne toujours pas pour moi. Y a-t-il un autre endroit où cela doit être changé? (Mon projet a utilisé create-react-app)

jest --env=node fonctionne pour moi.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

emaincourt picture emaincourt  ·  3Commentaires

ghost picture ghost  ·  3Commentaires

Spartano picture Spartano  ·  3Commentaires

helmus picture helmus  ·  3Commentaires

altruisticsoftware picture altruisticsoftware  ·  3Commentaires