とろろこんぶろぐ

かけだしR&Dフロントエンジニアの小言

jest + typescript で 'describe' is not defined

問題

jest + typescript で、eslintが以下のエラーを出力した。

'describe' is not defined. eslint(no-undef)

typescriptだと @types/jest を入れろと言われるが、eslint ではそれだけではダメだった。

解決策

eslint-plugin-jest を入れる必要があった。

www.npmjs.com

READMEにある通り、以下のようにeslintrc.jsに追記する。

module.exports = {
  env: {
    ...
    "jest/globals": true,
  },
  ...
  plugins: [
    ...
    "jest",
  ],
  ...

結果

'describe' is not defined. は言われなくなった。

参考

eslintrc.js を載せておく。

module.exports = {
  env: {
    node: true,
    es6: true,
    'jest/globals': true,
  },
  extends: [
    "eslint:recommended",
    "plugin:prettier/recommended",
    "prettier/@typescript-eslint"
  ],
  parser: "@typescript-eslint/parser",
  parserOptions: {
    sourceType: "module"
  },
  plugins: [
    "@typescript-eslint",
    "jest",
    "prettier",
  ],
  rules: {
    "prettier/prettier": "warn",
    "@typescript-eslint/adjacent-overload-signatures": "error",
    "no-unused-vars": "off",
    "@typescript-eslint/no-unused-vars": "warn",
    "no-console": "off",
    "no-undef": "warn"
  }
};