なんかどうも jsdom + power-assert + 自作の eater を使ってテストをしていたら espower-loaderが中で使っている source-map-support のモジュールがエラーになる。
エラーの場所はココ
で、source-map-support の中で何やってるかというと、 error.stack プロパティがあるかどうかを見てるが、 stack を触った瞬間に下記のエラーになり、巻き込んで別な例外が出て死ぬ
TypeError: Invalid URL
Error /Users/furukawa.yosuke/Program/xxxxxxxx/node_modules/espower-loader/node_modules/source-map-support/source-map-support.js:388
var hasStack = (arguments[1] && arguments[1].stack);
^
どうも stack を呼んだ時に stack プロパティ自身が先にExceptionを吐いてしまうっぽい。
そもそもこの例外が起きる理由をよく読むと jsdom の下記のissueに行き着いた。
つまり、 url
option が無いとparseに失敗して Invalid なエラーになるらしい。
jsdomのオプションに url
を追加して対応。
jsdom.jsdom('<html ....', {
// url
url: 'http://example.com'
})