私は Jest テスト フレームワークを使い始めたばかりで、単体テストは問題なく動作しますが、そのモジュール (babel+webpack 経由の ES モジュール) で HTML ファイルを必要とするコンポーネントをテストする際に大きな問題が発生しています。
以下に例を示します。
import './errorHandler.scss';
import template from './errorHandler.tmpl';
class ErrorHandler {
...
package.json
空のオブジェクトを返すように Jest の構成で設定したコンポーネント固有の SCSS ファイルをロードしていますが、Jest が次のimport template from './errorHandler.tmpl';
行を実行しようとすると、次のように壊れます。
/Users/jannis/Sites/my-app/src/scripts/errorHandler/errorHandler.tmpl.html:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){<div class="overlay--top">
^
SyntaxError: Unexpected token <
at transformAndBuildScript (node_modules/jest-runtime/build/transform.js:284:10)
私の Jest 設定package.json
は次のとおりです。
"jest": {
"setupTestFrameworkScriptFile": "<rootDir>/test/setupFile.js",
"moduleDirectories": ["node_modules"],
"moduleFileExtensions": ["js", "json", "html", "scss"],
"moduleNameMapper": {
"^.+\\.scss$": "<rootDir>/test/styleMock.js"
}
}
webpackhtml-loader
が Jest で正しく動作していないようですが、これを修正する方法が見つかりません。
html-loader
import
これらをテストで機能させる方法を知っている人はいますか? それらは私のlodashテンプレートマークアップをロードしますが、.js
ファイルにこれらの大量のHTMLチャンクを時々入れたくないので、その部分を省略できますimport template from x
。
PS: これは反応プロジェクトではなく、単純な webpack、babel、es6 です。