はじめに
Nodeのプロジェクトで、Jestを使ってテストコードを書いているときに外部のAPIをコールすると、以下のようなエラーが出てテストが失敗してしまう。
Network Error
at createError (node_modules/axios/lib/core/createError.js:16:15)
at XMLHttpRequest.handleError (node_modules/axios/lib/adapters/xhr.js:83:14)
at XMLHttpRequest.el.addEventListener.event (node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js:33:32)
at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:316:27)
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:267:3)
at XMLHttpRequestEventTargetImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:214:9)
at fireAnEvent (node_modules/jsdom/lib/jsdom/living/helpers/events.js:17:36)
at requestErrorSteps (node_modules/jsdom/lib/jsdom/living/xhr-utils.js:121:3)
at dispatchError (node_modules/jsdom/lib/jsdom/living/xhr-utils.js:51:3)
at validCORSPreflightHeaders (node_modules/jsdom/lib/jsdom/living/xhr-utils.js:91:5)
at Request.preflightClient.on.resp (node_modules/jsdom/lib/jsdom/living/xhr-utils.js:361:12)
at Request.onRequestResponse (node_modules/request/request.js:1059:10)
console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
Error: Headers User-Agent forbidden
at dispatchError (以下略)
ネットで検索したら、SlackAPIでissueが上がっていた。
https://github.com/slackapi/node-slack-sdk/issues/655
で、結論から言うと、この記事にあるように、package.json
に以下の記述を追加すれば良い。
"jest": {
"testEnvironment": "node"
},
結構ハマったので、記事にしておきました。以上。