/** * QA360 Pack Generator * * Converts generated test specifications into QA360 pack YAML format. * This bridges the gap between AI-generated tests and runnable QA360 packs. * * @example * ```typescript * const generator = new PackGenerator(); * const packYaml = generator.generateFromApiSpec(apiSpec, { * name: 'my-api-tests', * version: 2 * }); * ``` */ import { PackConfigV2 } from '../types/pack-v2.js'; export type { TestSpec, ApiTestSpec, UiTestSpec, PerfTestSpec, UnitTestSpec, } from './types.js'; import type { TestSpec, ApiTestSpec, UiTestSpec, PerfTestSpec } from './types.js'; /** * Pack generator options */ export interface PackGeneratorOptions { /** Pack name */ name?: string; /** Pack version (1 or 2) */ version?: 1 | 2; /** Pack description */ description?: string; /** Default timeout for tests */ timeout?: number; /** Default retries */ retries?: number; /** On failure behavior */ onFailure?: 'stop' | 'continue'; /** Include cache configuration */ enableCache?: boolean; /** Cache TTL in milliseconds */ cacheTtl?: number; } /** * Generated pack result */ export interface PackGenerationResult { success: boolean; yaml: string; config: PackConfigV2; warnings?: string[]; errors?: string[]; } /** * Pack Generator * * Converts test specifications into QA360 pack YAML format. */ export declare class PackGenerator { private readonly defaults; constructor(options?: PackGeneratorOptions); /** * Generate pack from API test specification */ generateFromApiSpec(spec: ApiTestSpec, options?: PackGeneratorOptions): PackGenerationResult; /** * Generate pack from UI test specification */ generateFromUiSpec(spec: UiTestSpec, options?: PackGeneratorOptions): PackGenerationResult; /** * Generate pack from performance test specification */ generateFromPerfSpec(spec: PerfTestSpec, options?: PackGeneratorOptions): PackGenerationResult; /** * Generate pack from generic test specification */ generateFromSpec(spec: TestSpec, options?: PackGeneratorOptions): PackGenerationResult; /** * Format endpoint as smoke test spec */ private formatEndpointSpec; /** * Format page action */ private formatPageAction; /** * Extract threshold value from thresholds array */ private extractThreshold; /** * Convert config to YAML string * Note: This is a simple YAML generator. For production, use a proper YAML library. */ private toYaml; /** * Helper to indent object properties */ private indentObject; } /** * Convenience function to generate pack from API spec */ export declare function generatePackFromApiSpec(spec: ApiTestSpec, options?: PackGeneratorOptions): PackGenerationResult; /** * Convenience function to generate pack from UI spec */ export declare function generatePackFromUiSpec(spec: UiTestSpec, options?: PackGeneratorOptions): PackGenerationResult; /** * Convenience function to generate pack from performance spec */ export declare function generatePackFromPerfSpec(spec: PerfTestSpec, options?: PackGeneratorOptions): PackGenerationResult;