29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
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 }),
|
|
);
|
|
});
|
|
});
|