probitas-info

jsr-probitas's avatarfrom jsr-probitas

Information about Probitas framework. Use when asked "what is Probitas", explaining its purpose, features, or comparing with other test frameworks.

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 19, 2025

When & Why to Use This Skill

This Claude skill provides comprehensive information and technical guidance on the Probitas framework, a scenario-based E2E testing solution designed for backend services. It enables users to quickly understand its core features, such as built-in clients for HTTP, gRPC, and various databases (SQL/NoSQL), while offering practical examples of fluent assertions and automated resource management for robust API testing.

Use Cases

  • Explaining the purpose and scenario-based architecture of the Probitas framework to developers and QA engineers.
  • Comparing Probitas with other backend testing frameworks to evaluate its features like built-in clients and auto-cleanup.
  • Quickly retrieving API references and factory functions for integrating HTTP, gRPC, GraphQL, or database clients into test suites.
  • Providing boilerplate code and examples for creating readable E2E test scenarios with chainable assertions.
nameprobitas-info
descriptionInformation about Probitas framework. Use when asked "what is Probitas", explaining its purpose, features, or comparing with other test frameworks.

What is Probitas?

Scenario-based E2E testing framework for backend services (APIs, databases, message queues).

Key Features

Feature Description
Scenario-Based Tests as readable scenarios with steps
Built-in Clients HTTP, gRPC, GraphQL, SQL, Redis, MongoDB
Fluent Assertions Unified expect() with chainable checks
Auto Cleanup Resources with automatic cleanup
Batteries faker, FakeTime, spy, stub included

Quick Example

import { client, expect, scenario } from "jsr:@probitas/probitas";

export default scenario("API Test", { tags: ["http"] })
  .resource("http", () =>
    client.http.createHttpClient({
      url: Deno.env.get("API_URL") ?? "http://localhost:8080",
    }))
  .step("GET /users", async (ctx) => {
    const res = await ctx.resources.http.get("/users");
    expect(res).toBeOk().toHaveStatus(200);
  })
  .build();

Available Clients

Client Factory Function Use Case
HTTP client.http.createHttpClient() REST APIs, webhooks
HTTP OIDC client.http.oidc.createOidcHttpClient() OAuth 2.0/OIDC APIs
PostgreSQL client.sql.postgres.createPostgresClient() PostgreSQL databases
MySQL client.sql.mysql.createMySqlClient() MySQL databases
SQLite client.sql.sqlite.createSqliteClient() Embedded databases
DuckDB client.sql.duckdb.createDuckDbClient() Analytics databases
gRPC client.grpc.createGrpcClient() gRPC services
ConnectRPC client.connectrpc.createConnectRpcClient() Connect/gRPC-Web
GraphQL client.graphql.createGraphqlClient() GraphQL APIs
Redis client.redis.createRedisClient() Cache, pub/sub
MongoDB client.mongodb.createMongoClient() Document databases
Deno KV client.deno_kv.createDenoKvClient() Deno KV store
RabbitMQ client.rabbitmq.createRabbitMqClient() AMQP message queues
SQS client.sqs.createSqsClient() AWS message queues

API Reference

Use deno doc to look up API:

# Core module
deno doc jsr:@probitas/probitas

# Client modules (use pattern: jsr:@probitas/probitas/client/<name>)
deno doc jsr:@probitas/probitas/client/http
deno doc jsr:@probitas/probitas/client/http/oidc
deno doc jsr:@probitas/probitas/client/grpc
deno doc jsr:@probitas/probitas/client/connectrpc
deno doc jsr:@probitas/probitas/client/graphql
deno doc jsr:@probitas/probitas/client/redis
deno doc jsr:@probitas/probitas/client/mongodb
deno doc jsr:@probitas/probitas/client/rabbitmq
deno doc jsr:@probitas/probitas/client/sqs
deno doc jsr:@probitas/probitas/client/deno_kv
deno doc jsr:@probitas/probitas/client/sql        # Common SQL types
deno doc jsr:@probitas/probitas/client/sql/postgres
deno doc jsr:@probitas/probitas/client/sql/mysql
deno doc jsr:@probitas/probitas/client/sql/sqlite
deno doc jsr:@probitas/probitas/client/sql/duckdb

Documentation