@probitas/discover

Scenario file discovery utilities for Probitas.

This package provides utilities for discovering scenario files (.probitas.ts) from file paths and directories. It supports glob patterns for flexible file matching and is used internally by the CLI to find scenarios to execute.

Package Description
@probitas/scenario Load discovered files with loadScenarios
@probitas/cli CLI that uses this discovery

Core Function

Configuration Type

Default Behavior

By default, the discovery function:

  • Searches for files matching **\/*.probitas.ts in directories
  • Returns direct file paths as-is (no pattern matching)
  • Returns absolute paths sorted alphabetically

Permissions

Requires --allow-read permission to read the file system.

Installation

deno add jsr:@probitas/discover

Interfaces

interface

#DiscoverOptions

interface DiscoverOptions

Options for discovering scenario files.

Controls which files are included or excluded when scanning directories.

NameDescription
includesGlob patterns for files to include when scanning directories.
excludesGlob patterns for files to exclude.
Properties
  • includes?readonly string[]

    Glob patterns for files to include when scanning directories.

    Uses standard glob syntax with ** for recursive matching.

  • excludes?readonly string[]

    Glob patterns for files to exclude.

Functions

function

#discoverScenarioFiles

async function discoverScenarioFiles(paths: readonly string[], _: unknown): Promise<string[]>

Discover scenario files from paths (files or directories).

Handles two input types:

  • File path: Returns the file directly (no pattern matching)
  • Directory path: Scans using include/exclude patterns
Parameters
  • pathsreadonly string[]
    • Array of file paths or directory paths to scan
  • _unknown
Returns

Promise<string[]> — Array of absolute file paths, sorted alphabetically

Examples

Discover from directories

import { discoverScenarioFiles } from "@probitas/discover";

// Use default patterns (*.probitas.ts)
const files = await discoverScenarioFiles(["./tests", "./integration"]);

Discover with custom patterns

const files = await discoverScenarioFiles(["./src"], {
  includes: ["**\/*.test.ts", "**\/*.spec.ts"],
  excludes: ["**\/__fixtures__/**"]
});

Mixed files and directories

const files = await discoverScenarioFiles([
  "./tests/",           // Scan directory
  "./smoke.probitas.ts" // Include specific file
]);
Search Documentation