GitHub ActionsでJestを叩くときのタイムゾーンと言語を設定する

GitHub リポジトリにプッシュした時、GitHub Actions のワークフローで自動的に Jest を走らせるようにしています。GitHub 上で自動的に走る Jest と、手動で直接叩く Jest との違いはタイムゾーンとロケールです。ここでは、GitHub 上で Jest を動かすときに環境変数としてタイムゾーンとロケールを指定する方法について説明します。

1. package.json にグローバル設定ファイルを指定する

以下のように設定を追記します。jest-global-setup.jsに設定を記載すれば、環境変数から読み込まれた値を上書きできます。

  "jest": {
    "globalSetup": "./jest-global-setup.js"
  },

2. jest-global-setup.js の中身を記載する

タイムゾーンと言語を指定します。

module.exports = async () => {
  process.env.TZ = "Asia/Tokyo";
  process.env.LANG = "en_US.UTF-8";
};

3. 動作結果を確認する

Jest のテストで出力される日時の文字列を確認したところ、言語が日本語から英語になっていることが確認できました。

    -     "date": "Wed Apr 01 2020 09:00:00 GMT+0900 (日本標準時)",
    +     "date": "Wed Apr 01 2020 09:00:00 GMT+0900 (Japan Standard Time)",