Nuxt.jsにて、
import '~/assets/css/common.scss';
という感じで、scssをインポートしているComponentをテストしようとすると、
SyntaxError: Unexpected identifier
と、SCSSがパースできずJestがコケて困ってました。
解決策を探してみたところ、 vue-jest の issue で同様の悩みを発見。
cssや画像、フォントなどのファイルは jest-transform-stub でテストする、つまり本家のテストの対象外にしてしまうのがセオリーのようです。
Nuxt.jsでの設定方法
❶ jest-transform-stubの導入
yarn add -D jest-transform-stub
※ yarnを使っている場合
❷ jest.config.jsを編集
module.exports = { transform: { '^.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub' } };
これでOKです。
実際、CSSとSCSSだけなら、
module.exports = { transform: { '^.+\\.(css|scss)$': 'jest-transform-stub' } };
で充分なのですが、今後のためにたくさん設定しておきました。