📝

Vitest(jsdom)で外部APIのデータ取得時のCookieJarエラーの対応

2022/09/03に公開

問題

Vitest実行時にaxiosなどでデータ取得し、下記のようなエラーが出た場合の対応

Cookie has domain set to the public suffix "localhost" which is a special use domain.
To allow this, configure your CookieJar with {allowSpecialUseDomain:true, rejectPublicSuffixes: false}

原因

jsdomが依存するtough-cookieに不具合のあるバージョンがある
おそらくjestでも発生する

対応

tough-cookieのバージョンを確認し、バージョンをあげる
バージョンが4.1.2はエラーが発生しない

※ yarnのバージョン1は、package(jsdom)が依存するpackage(tough-cookie)のバージョンをあげるコマンドがなかった
 jsdomをremove -> addして対応した

参考

https://github.com/jsdom/jsdom/issues/3419
https://github.com/salesforce/tough-cookie/issues/246

Discussion