Skip to content

lucid-softworks/queue-testkit

Repository files navigation

@lucid-softworks/queue-testkit

Deterministic queue clocks, lifecycle helpers, state assertions, and worker draining.

import {
  assertQueueStates,
  drainQueueWorker,
  ManualQueueClock,
} from "@lucid-softworks/queue-testkit";
import { QueueClient } from "@lucid-softworks/queue-client";
import { MemoryQueueStore } from "@lucid-softworks/queue-store-memory";
import { QueueWorker } from "@lucid-softworks/queue-worker";

const clock = new ManualQueueClock();
const store = new MemoryQueueStore();
const client = new QueueClient(store, {
  clock,
  idFactory: () => "job",
});
await client.enqueue("work", "data");
const worker = new QueueWorker(
  store,
  { work: (data) => data },
  { clock, id: "worker" },
);
await drainQueueWorker(worker);
assertQueueStates(await store.list(), { job: "completed" });

Manual sleeps resolve only when advance reaches their deadline and reject on abort. queueEventTypes accepts an event bus or event array. Assertion failures include the expected and observed job states.

Releases

Packages

Contributors

Languages