UNPKG

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
/** * 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