scenario.ts 791 B

1234567891011121314151617181920
  1. import type { Page, TestInfo } from "@playwright/test"
  2. import type { VisualPlan } from "./invariant"
  3. import { startVisualProbe, stopVisualProbe } from "./probe"
  4. import type { VisualRegionDefinition } from "./regions"
  5. import { reportVisualStability } from "./reporter"
  6. export async function runVisualStabilityScenario<const Regions extends Record<string, VisualRegionDefinition>>(input: {
  7. page: Page
  8. testInfo: TestInfo
  9. name: string
  10. regions: Regions
  11. plan: VisualPlan<Extract<keyof Regions, string>>
  12. run: () => Promise<void>
  13. }) {
  14. await startVisualProbe(input.page, input.regions)
  15. await input.run()
  16. const result = await stopVisualProbe<Extract<keyof Regions, string>>(input.page)
  17. await reportVisualStability(input.testInfo, input.name, result, input.plan)
  18. return result
  19. }