LoginSignup
1

More than 3 years have passed since last update.

Jestで外部APIをコールしたときに、Error: Headers User-Agent forbiddenが出る件

Posted at

はじめに

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"
},

結構ハマったので、記事にしておきました。以上。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1