UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Jest】WebpackのDefinePluginで定義した定数の扱い

以前webpackのDefinePluginを使ってFirebase SDKの初期設定値を環境ごとに変えられるようにした

uga-box.hatenablog.com

結果的に以下のように__FB_API_KEY__のように定義可能となったのだが、Jestでテストを実行する際にここがundefineとなってしまう

const firebaseConfig = {
  apiKey: __FB_API_KEY__,
  authDomain: __FB_AUTH_DOMAIN__,
  databaseURL: __FB_DATABASE_URL__,
  storageBucket: __FB_STORAGE_BUCKET__,
  messagingSenderId: __FB_MESSAGING_SENDER_ID__,
  appId: __FB_APP_ID__,
};

解決方法

jest.config.jsglobals以下のように変数を定義する

module.exports = {
  ...
  globals: {
    __FB_API_KEY__: "test",
    __FB_AUTH_DOMAIN__: "test",
    __FB_DATABASE_URL__: "test",
    __FB_STORAGE_BUCKET__: "test",
    __FB_MESSAGING_SENDER_ID__: "test",
    __FB_APP_ID__: "test",
  }
}

https://jestjs.io/docs/ja/configuration#globals-object