mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-17 02:38:29 +00:00
Co-authored-by: Frank <frank@anoma.ly> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jack <jack@anoma.ly> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Shoubhit Dash <shoubhit2005@gmail.com> Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: James Long <longster@gmail.com> Co-authored-by: Dustin Deus <deusdustin@gmail.com> Co-authored-by: starptech <starptech@starptechs-MBP.fritz.box> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: 𝓛𝓲𝓽𝓽𝓵𝓮 𝓕𝓻𝓪𝓷𝓴 <little-frank@opencord.local> Co-authored-by: Dax <mail@thdxr.com> Co-authored-by: usrnk1 <7547651+usrnk1@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: runvip <164729189+runvip@users.noreply.github.com> Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: Julian Coy <julian@ex-machina.co> Co-authored-by: Vladimir Glafirov <vglafirov@gitlab.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Kit Langton <kit.langton@gmail.com> Co-authored-by: Simon Klee <hello@simonklee.dk> Co-authored-by: Jay <air@live.ca> Co-authored-by: David Hill <1879069+iamdavidhill@users.noreply.github.com>
54 lines
2 KiB
TypeScript
54 lines
2 KiB
TypeScript
import type { Page, TestInfo } from "@playwright/test"
|
|
import { analyzeVisualObservations, analyzeVisualTraceByMarker } from "./visual-stability/analyzer"
|
|
import { legacyVisualPlan, type LegacyVisualStabilityOptions } 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: LegacyVisualStabilityOptions = {}) {
|
|
return analyzeVisualObservations(trace.samples, legacyVisualPlan(options))
|
|
}
|
|
|
|
export function analyzeVisualStabilityByMarker(
|
|
trace: VisualStabilityTrace,
|
|
options: LegacyVisualStabilityOptions = {},
|
|
) {
|
|
return analyzeVisualTraceByMarker(trace, legacyVisualPlan(options))
|
|
}
|
|
|
|
export async function expectVisualStability(
|
|
testInfo: TestInfo,
|
|
name: string,
|
|
trace: VisualStabilityTrace,
|
|
options: LegacyVisualStabilityOptions = {},
|
|
) {
|
|
await reportVisualStability(
|
|
testInfo,
|
|
name,
|
|
{
|
|
...trace,
|
|
frames: (trace as VisualStabilityTrace & { [capturedFrames]?: CapturedFrame[] })[capturedFrames] ?? [],
|
|
},
|
|
legacyVisualPlan(options),
|
|
)
|
|
}
|