donobu
Version:
Create browser automations with an LLM agent and replay them as Playwright scripts.
33 lines • 1.74 kB
TypeScript
/**
* @fileoverview Pure in-memory merge of two `DonobuReport`s.
*
* Combines the initial Playwright run and an auto-heal rerun into a single
* report that carries both attempts and annotates any test whose outcome
* flipped from failing → passing as `self-healed`. The result is destined for
* the HTML renderer (and, for back-compat, the on-disk Playwright JSON that
* downstream dashboards consume).
*
* This module intentionally owns zero I/O. Callers load the reports off disk,
* call `mergeReports`, then persist / relocate attachments / re-render as
* needed. Keeping the merge pure makes it trivial to test and reason about.
*/
import type { DonobuReport, HealedTestDescriptor } from './model';
export interface MergeReportsParams {
/** Pre-loaded initial report, or null when the initial run produced none. */
initialReport: DonobuReport | null;
/** Pre-loaded heal-run report, or null when the heal run produced none. */
healReport: DonobuReport | null;
/** Tests the orchestrator declared healed — used when the heal report
* doesn't expose them under a matching key (e.g. filter rewrites). */
healedTests: HealedTestDescriptor[];
/** Whether the heal rerun exited cleanly. */
healSucceeded: boolean;
/** Recorded in the merged report metadata for triage auto-discovery. */
triageRunDir?: string;
/** Recorded in the merged report metadata purely for provenance. */
initialReportSourcePath?: string;
healReportSourcePath?: string;
}
export declare function mergeReports(params: MergeReportsParams): DonobuReport | null;
export declare function buildTestKey(file?: string, projectName?: string, title?: string): string;
//# sourceMappingURL=merge.d.ts.map