@nwire/test-kit
v0.7.1
Published
Shared test helpers and zod-driven fixture factories
Readme
@nwire/test-kit
Test helpers for Nwire apps — harness, telemetry probe, Docker presets, BDD.
What it does
Boots a Nwire app in-process with in-memory adapters, gives you a dispatch/query/telemetry/idle/stop API, and adds Docker presets for real-deps integration tests plus a Gherkin BDD wrapper around vitest-cucumber. Three layers (unit, real-deps, BDD) so the same test kit covers fast feedback and end-to-end coverage.
Install
pnpm add -D @nwire/test-kitQuick start
import { describe, it, expect } from "vitest";
import { harness } from "@nwire/test-kit";
import { app } from "../app";
describe("enrolStudent", () => {
it("emits StudentWasEnrolled", async () => {
const h = await harness({ app });
try {
const probe = h.telemetry.events("StudentWasEnrolled");
await h.dispatch("enrolStudent", { studentId: "s-1", courseId: "c-1" });
await h.idle();
expect(probe.collected).toHaveLength(1);
} finally {
await h.stop();
}
});
});API surface
harness({ app, providers? })— boot an app in-process; returns{ dispatch, query, telemetry, idle, stop }.TelemetryProbe/TelemetryFilter— filter the runtime telemetry stream.dockerCompose({ preset })— spin up Mongo / Postgres / NATS / Redis for the suite;DOCKER_COMPOSE_PRESETSfor ready-made stacks.feature(path, define)— wire.featurefiles to vitest via@amiceli/vitest-cucumber.factory(schema)/sequence()— zod-driven fixture factories.createTestApp/bootTestApp— supertest agent helpers for HTTP-level tests.isReachable(url)— startup probe for Docker-backed services.
When to use
In every Nwire test file. Fits every level — harness covers unit/integration, dockerCompose covers real-deps, feature covers BDD acceptance.
