Jest で複数の preset を使う
前提として、私は Jest に詳しくないのでこの方法が正しいのかどうかはわからない。けど、この方法で複数の preset を使うことはできる。
これが必要になったのは TypeScript と Puppeteer を使った E2E テストを Jest で回したくなったから。presets はだいたいの場合プレーンな JavaScript のオブジェクトだから、マージしても使えるケースが多いらしい。
こういう、2つの preset をマージしてエクスポートするだけの jest-prests.js
を作る。
const merge = require('merge');
const ts_preset = require('ts-jest/jest-preset');
const puppeteer_preset = require('jest-puppeteer/jest-preset');
module.exports = merge.recursive(ts_preset, puppeteer_preset, {
globals: {
test_url: `http://${process.env.HOST || '127.0.0.1'}:${process.env.PORT ||
3000}`,
},
});
jest-config.js
側で次のように相対パスで指定する。
module.exports = {
preset: './jest-presets.js',
};
これで両方の preset が使える。