概要
Jestを使ったテストでJest.useFakeTimers
でタイマーモックを設定した上でPrisma.findUnique
を使うと、何も返って来ずテストが進まないという現象が発生した。
何故解決するのか完全に理解はしていないが、その解決方法の備忘メモ。
環境
- typescript: 4.2.x
- jest: 29.1.x
- prisma: 3.15.x
結論
jest.useFakeTimers
のConfigでnextTick
をモック対象外に指定することで解決。
解決前の設定
jest.useFakeTimers({
now: new Date('2023-01-01 00:00:00'),
});
解決後の設定
jest.useFakeTimers({
+ doNotFake: ['nextTick'],
now: new Date('2023-01-01 00:00:00'),
});
備考
Prisma.findUnique
ではなくPrisma.findFirst
であれば、nextTick
をモック対象外に指定せずともテストが問題なく走った。
参考URL