@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.
Links
- GitHub Repository
- @probitas/probitas - Main package (recommended for most users)
Related Packages
| Package | Description |
|---|---|
| @probitas/scenario | Load discovered files with loadScenarios |
| @probitas/cli | CLI that uses this discovery |
Core Function
discoverScenarioFiles- Discover scenario files from paths
Configuration Type
DiscoverOptions- Options for customizing discovery behavior
Default Behavior
By default, the discovery function:
- Searches for files matching
**\/*.probitas.tsin 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/discoverInterfaces
#DiscoverOptions
interface DiscoverOptionsOptions for discovering scenario files.
Controls which files are included or excluded when scanning directories.
| Name | Description |
|---|---|
includes | Glob patterns for files to include when scanning directories. |
excludes | Glob 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
#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
]);
