jest/no-deprecated-functions スタイル
何を行うか
長年にわたり、Jestにはいくつかのコード上の負債が蓄積されてきました。これは、明確さのために関数名が変更されたり、より強力なAPIに置き換えられた関数を指します。
このルールは、これらの非推奨関数の多くを自動修正( autofix )できるようになっています。
jest.resetModuleRegistry
Jest 15 で resetModules にリネームされ、Jest 27 で削除されました。
jest.addMatchers
Jest 17 で expect.extend に置き換えられ、Jest 27 で削除されました。
require.requireActual および require.requireMock
Jest 21 で置き換えられ、Jest 26 で削除されました。
当初、requireActual および requireMock 関数は require 関数に配置されていました。
その後、型チェックツールとの互換性を高めるために、これらの関数は jest オブジェクトに移動され、require を通じた使用は非推奨となりました。最終的に、Jest 26 のリリースにより、これらは require 関数から完全に削除されました。
jest.runTimersToTime
Jest 22 で advanceTimersByTime にリネームされ、Jest 27 で削除されました。
jest.genMockFromModule
Jest 26 で createMockFromModule にリネームされ、Jest 30 で削除予定です。
なぜ問題なのか
通常、これらの非推奨関数は複数のメジャーバージョンにわたってコードベースに残されるものの、最終的には完全に削除されます。
例
このルールに違反する不正なコードの例:
jest.resetModuleRegistry; // Jest 15 以降
jest.addMatchers; // Jest 17 以降設定
このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。
jest
type: object
Jest の設定オプション。
jest.version
type: string
default: "29"
使用している Jest のバージョン。
使用方法
設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:
{
"plugins": ["jest"],
"rules": {
"jest/no-deprecated-functions": "error"
}
}oxlint --deny jest/no-deprecated-functions --jest-plugin