Something went wrong. Try again.
opencode v2 mirror
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import type { Page, TestInfo } from "@playwright/test"import { analyzeVisualObservations, analyzeVisualTraceByMarker } from "./visual-stability/analyzer"import { stabilityPlan, type VisualStabilityOptions } from "./visual-stability/invariant"import type { CapturedFrame, VisualStabilityTrace } from "./visual-stability/model"import { markVisualProbe, startVisualProbe, stopVisualProbe } from "./visual-stability/probe"import type { VisualRegionDefinition } from "./visual-stability/regions"import { reportVisualStability } from "./visual-stability/reporter"
export * from "./visual-stability/index"
const capturedFrames = Symbol("capturedFrames")
export async function startVisualStabilityProbe(page: Page, regions: Record<string, VisualRegionDefinition>) { await startVisualProbe(page, regions)}
export async function stopVisualStabilityProbe(page: Page) { const result = await stopVisualProbe(page) const trace: VisualStabilityTrace = { markers: result.markers, samples: result.samples } Object.defineProperty(trace, capturedFrames, { value: result.frames }) return trace}
export async function markVisualStability(page: Page, label: string) { await markVisualProbe(page, label)}
export function analyzeVisualStability(trace: VisualStabilityTrace, options: VisualStabilityOptions = {}) { return analyzeVisualObservations(trace.samples, stabilityPlan(options))}
export function analyzeVisualStabilityByMarker(trace: VisualStabilityTrace, options: VisualStabilityOptions = {}) { return analyzeVisualTraceByMarker(trace, stabilityPlan(options))}
export async function expectVisualStability( testInfo: TestInfo, name: string, trace: VisualStabilityTrace, options: VisualStabilityOptions = {},) { await reportVisualStability( testInfo, name, { ...trace, frames: (trace as VisualStabilityTrace & { [capturedFrames]?: CapturedFrame[] })[capturedFrames] ?? [], }, stabilityPlan(options), )}