import { subDays } from "date-fns"; import InviteReminderEmail from "@server/emails/templates/InviteReminderEmail"; import { buildInvite } from "@server/test/factories"; import { setupTestDatabase } from "@server/test/support"; import InviteReminderTask from "./InviteReminderTask"; setupTestDatabase(); describe("InviteReminderTask", () => { it("should not destroy documents not deleted", async () => { const spy = jest.spyOn(InviteReminderEmail, "schedule"); // too old await buildInvite({ createdAt: subDays(new Date(), 3.5), }); // too new await buildInvite({ createdAt: new Date(), }); // should send reminder await buildInvite({ createdAt: subDays(new Date(), 2.5), }); const task = new InviteReminderTask(); await task.perform(); // running twice to make sure the email is only sent once await task.perform(); expect(spy).toHaveBeenCalledTimes(1); spy.mockRestore(); }); });