feat: centralize application framework primitives
Quality / quality (ubuntu-latest) (push) Failing after 14m38s
Quality / quality (windows-latest) (push) Canceled after 0s

This commit is contained in:
2026-08-22 23:07:46 +05:30
parent 96e082b943
commit a3ddd39b7b
73 changed files with 1429 additions and 84 deletions
+19
View File
@@ -5,8 +5,27 @@ import {
cronToInterval,
defineWorkflow,
memoryQueueStore,
defineWorker,
runWorker,
} from "../src/index.ts";
test("durable queues batch enqueue and worker lifecycle are idempotent", async () => {
const queue = createDurableQueue();
const seen: number[] = [];
const worker = runWorker(
queue,
defineWorker<number>({ name: "number", handler: (job) => void seen.push(job.data) }),
);
await worker.start();
await worker.start();
const jobs = await queue.addBatch("number", [{ data: 1 }, { data: 2 }]);
expect(jobs).toHaveLength(2);
await queue.drain();
expect(seen).toEqual([1, 2]);
await worker.stop();
expect(worker.running).toBe(false);
});
test("processes a job", async () => {
const queue = createQueue();
const done: string[] = [];