import { describe, it, expect, vi } from "vitest"; import { PayloadJobQueue } from "@/jobs/payload-job-queue"; describe("PayloadJobQueue", () => { it("delegates to payload.jobs.queue with the task slug and input", async () => { const queueMock = vi.fn().mockResolvedValue({ id: "payload-job-1" }); const payload = { jobs: { queue: queueMock } } as never; const queue = new PayloadJobQueue(payload); const result = await queue.enqueue("blog.republish", { id: 1 }); expect(queueMock).toHaveBeenCalledWith({ task: "blog.republish", input: { id: 1 }, waitUntil: undefined, }); expect(result).toEqual({ jobId: "payload-job-1" }); }); it("forwards runAt as waitUntil", async () => { const queueMock = vi.fn().mockResolvedValue({ id: "payload-job-2" }); const payload = { jobs: { queue: queueMock } } as never; const queue = new PayloadJobQueue(payload); const future = new Date(Date.now() + 5000); await queue.enqueue("blog.task", {}, { runAt: future }); expect(queueMock).toHaveBeenCalledWith( expect.objectContaining({ waitUntil: future }), ); }); });