@probitas-test/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.

PackageDescription
@probitas-test/coreLoad discovered files with loadScenarios
probitasCLI that uses these reporters

Core Function

Configuration Types

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

npm install @probitas-test/discover

Interfaces

interface

#DiscoverOptions

interface DiscoverOptions

Options for discovering scenario files.

Controls which files are included or excluded when scanning directories.

NameDescription
excludesGlob patterns for files to exclude.
includesGlob patterns for files to include when scanning directories.
onProgressCallback invoked during discovery to report progress.
Properties
  • excludes?readonly string[]

    Glob patterns for files to exclude.

  • includes?readonly string[]

    Glob patterns for files to include when scanning directories.

    Uses standard glob syntax with ** for recursive matching.

  • onProgress?(progress: DiscoverProgress) => void

    Callback invoked during discovery to report progress.

    Called when processing each path (file or directory) and after completing pattern matching within a directory. This allows CLI applications to display real-time progress feedback.

interface

#DiscoverProgress

interface DiscoverProgress

Progress information during file discovery.

Provides real-time feedback about the discovery process, useful for displaying progress in CLI applications.

NameDescription
currentPathThe directory or file path currently being processed.
filesFoundTotal number of matching files found so far.
Properties
  • currentPathstring

    The directory or file path currently being processed.

  • filesFoundnumber

    Total number of matching files found so far.

Functions

function

#discoverScenarioFiles

function discoverScenarioFiles(
  paths: readonly string[],
  options: DiscoverOptions,
): 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

  • Requires --allow-read permission

  • Non-existent paths are silently skipped

  • Duplicate files are automatically deduplicated

  • Output is always sorted for deterministic ordering

Parameters
  • pathsreadonly string[]

    Array of file paths or directory paths to scan

  • Include/exclude patterns for directory scanning

Returns

Promise<string[]>

Array of absolute file paths, sorted alphabetically

Examples

Discover from directories

import { discoverScenarioFiles } from "@probitas-test/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