Files
agentic-dev/packages/core-shared/src/jobs/payload-job-queue.test.ts

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 }),
);
});
});