/** * spec-generator — 从扫描结果生成 VERIFY_SPEC.yaml * * v8.3.57+ 新增 */ import type { DiscoveredRoute } from './route-scanner'; import type { PageEntry } from './page-scanner'; import type { VerifySpec, Scenario } from './types'; export interface SpecGenerationOptions { baseUrl: string; platform: string; name?: string; } export declare function generateSpecFromRoutes(routes: DiscoveredRoute[], options: SpecGenerationOptions): VerifySpec; export declare function generateSpecFromPages(pages: PageEntry[], options: SpecGenerationOptions): VerifySpec; export declare function writeVerifySpec(spec: VerifySpec, outputPath: string): Promise; export declare function generateFlowScenariosFromSpec(specText: string, _options: SpecGenerationOptions, elementInfo?: ElementTestIdInfo): Scenario[]; /** * 提取验收用例表格「操作步骤」列(v8.3.353+) * * TEST.md 验收表格是好的冒烟/AI 验证素材,但列语义多变,提取策略防御式收紧: * 仅精确匹配列头「操作步骤/测试步骤/操作/步骤」才提取;占位单元格与分隔行自动跳过。 */ export declare function extractTableOperationSteps(markdown: string): string[]; /** * UI_SPEC 元素标识清单提取结果(v8.3.293+) */ export interface ElementTestIdInfo { /** 元素名(中文描述,如「新增按钮」)→ data-testid(如 btn-add-user) */ elements: Record; /** 页面容器类 testid(xxx-page 结尾,如 users-page) */ pageTestIds: string[]; } /** * 从 UI_SPEC 文本提取「元素标识约定」清单(v8.3.293+) * * 兼容三种写法: * 1. Markdown 表格(| 组件/元素 | data-testid |) * 2. 行内枚举(data-testid = a / b / c、data-testid:a / b) * 3. 代码属性(data-testid="xxx") * * 含模板占位的 testid(如 btn-edit-{id})无法直接作为选择器,自动跳过。 */ export declare function extractElementTestIds(specText: string): ElementTestIdInfo; /** * 从 UI_SPEC/TEST 文档生成流程级 VERIFY_SPEC(v8.3.293+,无源码时的自动装配通道) * * 装配链:UI_SPEC「元素标识约定」清单 → 业务流程步骤 → 场景 selector 自动对应, * 弥合「分析阶段元素约定」与「冒烟配置生成阶段」之间的断链。 */ export declare function generateSpecFromUiSpec(specText: string, options: SpecGenerationOptions): VerifySpec; //# sourceMappingURL=spec-generator.d.ts.map