@theconduit/testing
v0.1.1
Published
Test kit for Conduit: fake transport providers, DLQ doubles, envelope/command/event builders, and wiring helpers so you can exercise handlers and routers without real brokers or databases.
Maintainers
Readme
@theconduit/testing
Testing helpers and fakes for Conduit routes, providers, envelopes, and handler assertions.
Install
pnpm add -D @theconduit/testingHighlights
createConduitTestBuswith pre-wired fake provider + fake DLQ.- Envelope helpers:
makeCommandEnvelope,makeEventEnvelope. - Test doubles:
FakeProvider,FakeDLQManager. - Handler recorder helper:
createRecordedHandler.
Quick start
import { createConduitTestBus, makeCommandEnvelope, createRecordedHandler } from "@theconduit/testing";
const testBus = createConduitTestBus((builder) =>
builder.addRoute(
builder.route("cart.checkout").type("COMMAND").via("FAKE").onExhausted("DLQ")
)
);
const recorded = createRecordedHandler(async () => ({ ok: true }));
testBus.bus.registerCommandHandler("cart.checkout", recorded.handle);
await testBus.bus.dispatch(
makeCommandEnvelope("cart.checkout", { cart_id: "c-1" }, "idem-c-1")
);
console.log(recorded.calls.length); // 1
console.log(testBus.provider.recordsSnapshot().length); // 1Exports
createConduitTestBus,RecordedDispatchBusmakeCommandEnvelope,makeEventEnvelopeFakeProvider,FakeDLQManagercreateRecordedHandler
Related docs
docs/guides/getting-started.mddocs/guides/idempotency-patterns.md
