Merged into https://github.com/probitas-test/probitas-packages
Client library collection for exercising Probitas scenarios against real services. Each protocol-specific client shares the same ergonomics and error model so scenario code stays consistent.
- Multi-protocol coverage: HTTP, ConnectRPC/gRPC/gRPC-Web, GraphQL, SQL (Postgres/MySQL/SQLite/DuckDB), MongoDB, Redis, RabbitMQ, SQS, and Deno KV
- Shared
ClientErrorhierarchy with per-client literalkindvalues for safe narrowing - AsyncDisposable-aware clients for predictable resource cleanup in Probitas scenarios
- Built for Deno 2.x and published on JSR under the
@probitas/*namespace
Add the clients you need to your deno.json imports (JSR aliases are already
provided in the workspace):
Use them inside Probitas scenarios with resource-managed clients:
import { scenario } from "jsr:@probitas/probitas";
import { createHttpClient } from "@probitas/client-http";
import { assertEquals } from "@std/assert";
export default scenario("example http request")
.resource(
"http",
() => createHttpClient({ url: "http://localhost:18080" }),
)
.step("call API", (ctx) => ctx.resources.http.get("/get?hello=world"))
.step("assert response", (ctx) => {
const response = ctx.previous;
assertEquals(response.status, 200);
assertEquals(response.json.args.hello, "world");
})
.build();Refer to docs/clients.md for package-specific usage notes and to the
Probitas framework for scenario
authoring.
- Tooling: Deno 2.x. A Nix flake is provided (
nix develop) for consistent tooling. - Tasks:
deno task verifyruns fmt, lint, type-check, and tests. Seedeno.jsoncfor the full task list. - Integration services:
compose.yamlstarts local dependencies (HTTP/ConnectRPC/gRPC/GraphQL echo servers, Postgres/MySQL, Redis, MongoDB, RabbitMQ, LocalStack, Deno KV). Echo server images are published toghcr.io/probitas-test/. - Specs: Detailed protocol expectations are tracked in
docs/specs/00-overview.md.
docs/overview.md– architecture, design principles, error model, and testing approachdocs/clients.md– client capabilities, configuration, and integration tips
See LICENSE for details.
{ "imports": { "@probitas/client-http": "jsr:@probitas/client-http@^0" } }