我測驗我的API和supertest包,我有,當物業業務邏輯qrCodeDate不到Date.now()的User狀態變為無效。
import { CronJob } from 'cron';
export default (Model) =>
new CronJob(
'0 1 * * *',
async function () {
await Model.updateMany(
{ qrCodeDate: { $lt: new Date(Date.now()) } },
{ $set: { status: 'INACTIVE', qrCodeDate: null } }
);
},
null
);
在 userModel.ts 上:
// Cron Job to verify if Date.now() > qrCodeDate
const job = CronJob(UserModel);
job.start();
而在users.test.ts我做這樣的事情:expect(User['status']).toBe('INACTIVE');
在我的應用程式中,我讓那些 CronJob 每天運行,檢查前面提到的條件,無論如何,在我的測驗中我不知道如何實作,還需要 TS 型別的注釋行
import { CronJob } from 'cron';
jest.mock('cron');
xtest('Check if when QR Code expires, ordinary status back to INACTIVE', async () => {
// (CronJob as unknown as jest.Mock)
expect(User['status']).toBe('INACTIVE');
});
提前致謝。
uj5u.com熱心網友回復:
您不需要在您的專案中測驗 cron 模塊。您只需要測驗您正在呼叫的函式內部的邏輯Model.updateMany。您可以單獨宣告該函式而不是在引數中,給它一個名稱并為該函式撰寫測驗
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/385305.html
上一篇:何時使用基于屬性的測驗?
