【发布时间】:2022-01-16 07:56:01
【问题描述】:
我正在使用 supertest 包测试我的 API,我确实有一个业务逻辑,当属性 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');
});
提前致谢。
【问题讨论】:
标签: node.js typescript testing jestjs cron