以下のコードは、jsdom ドキュメントで提供されているテストを実行するためだけに、server.js ファイルから抜粋した小さなスニペットです。
var window = jsdom.jsdom().createWindow();
jsdom.jQueryify(window, './jq.min.js' , function() {
console.log('inside');
window.$('body').append('<div class="testing">Hello World, It works</div>');
console.log(window.$('.testing').text());
console.log('end');
});
私が文字通り得た出力はただinside
のもので、サーバーはハングして戻りません。console.log(window);
ウィンドウ オブジェクトが本当に作成されているかどうかを確認するためにデバッグ ステートメントを追加しましたが、オブジェクトの内容の詳細を示すかなり大きな出力ステートメントが生成されます。ただし、私が気づいたことの 1 つは、それがオブジェクトの定義済みメソッドであり、実際には rendersであることを出力が示していないことです。$
window
console.log(window.$);
undefined
jsdom がまだ開発モードであることは理解していますが、何か不足しているものはありますか?
いくつかの背景として、jsdom.env()
メソッドを使用したり、既存の HTML マークアップからドキュメントを作成したりするなど、コードのいくつかのバリエーションを試しましたが、どちらも期待される結果をレンダリングしませんでした。