鈴木颯介のブログ

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 が使える。