aiwg
Version:
Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo
95 lines • 2.97 kB
TypeScript
/**
* UseCaseParser - Parse use case documents to extract testable scenarios
*
* Parses use case markdown documents following the standard template format
* and extracts structured test scenarios for test generation.
*
* @module src/testing/generators/use-case-parser
*/
export interface UseCaseStep {
number: number;
actor: 'user' | 'system' | 'external';
action: string;
expectedResult?: string;
}
export interface UseCaseScenario {
id: string;
name: string;
type: 'main' | 'extension' | 'exception';
preconditions: string[];
steps: UseCaseStep[];
postconditions: string[];
extensionOf?: string;
triggeredAt?: number;
}
export interface UseCaseDocument {
id: string;
title: string;
actor: string;
description: string;
preconditions: string[];
postconditions: string[];
mainScenario: UseCaseScenario;
extensions: UseCaseScenario[];
exceptions: UseCaseScenario[];
nfrs: string[];
relatedUseCases: string[];
priority: 'critical' | 'high' | 'medium' | 'low';
}
export interface ParseResult {
success: boolean;
document?: UseCaseDocument;
errors: string[];
warnings: string[];
}
export declare class UseCaseParser {
private readonly MAIN_SCENARIO_PATTERN;
private readonly EXTENSION_PATTERN;
private readonly EXCEPTION_PATTERN;
private readonly STEP_PATTERN;
private readonly PRECONDITION_PATTERN;
private readonly POSTCONDITION_PATTERN;
private readonly NFR_REF_PATTERN;
private readonly UC_REF_PATTERN;
/**
* Parse a use case document from file
*
* @param filePath - Path to use case markdown file
* @returns Parse result with structured document
*/
parseFile(filePath: string): Promise<ParseResult>;
/**
* Parse use case content from string
*
* @param content - Markdown content
* @param sourceName - Source identifier for error messages
* @returns Parse result with structured document
*/
parseContent(content: string, sourceName?: string): ParseResult;
/**
* Parse multiple use case files from a directory
*
* @param dirPath - Directory containing use case files
* @returns Array of parse results
*/
parseDirectory(dirPath: string): Promise<Map<string, ParseResult>>;
/**
* Extract testable scenarios from a use case document
*
* @param document - Parsed use case document
* @returns Array of all testable scenarios
*/
extractTestableScenarios(document: UseCaseDocument): UseCaseScenario[];
private parseMainScenario;
private parseExtensions;
private parseExceptions;
private parseSteps;
private parseExtensionSteps;
private parseBulletList;
private extractSectionContent;
private extractReferences;
private extractIdFromFilename;
private normalizePriority;
private createEmptyScenario;
}
//# sourceMappingURL=use-case-parser.d.ts.map