Jestでテストの最後にDBをクリーンアップしたいときとかあると思います。
今回はその方法についてまとめ。
目次
package.jsonに全テストスイート前後の処理を設定
package.jsonのjestの記述の中にglobalSetup/globalTeardownという項目を追加します。
ここで指定するスクリプトが全テストスイート前後の処理になります。
"jest": {
"transform": {
".(ts|tsx)": "ts-jest"
},
"globals": {
"ts-jest": {
"tsConfig": "tsconfig.json"
}
},
"testMatch": [
"**/tests/**/*.test.(ts|tsx)"
],
"globalSetup": "./src/tests/setup.ts", // ここ!!!
"globalTeardown": "./src/tests/teardown.ts" // ここ!!!
}
全テストスイート前後の処理スクリプト
こんな感じで全テストスイート前後に実行したい関数をexport defaultします。asyncでも問題ないです。
export default async () => {
await DBのクリーンアップなど...
}
サンプルコード
TypeScript/Express/jest/supertest/prismaあたりを用いたサンプルコードをGithubにあげているのでよかったら見てみてください。