Skip to content

Test: migrate demos tests to Playwrite#33848

Draft
EugeniyKiyashko wants to merge 8 commits into
DevExpress:26_1from
EugeniyKiyashko:26_1_migrate_to_playwrite
Draft

Test: migrate demos tests to Playwrite#33848
EugeniyKiyashko wants to merge 8 commits into
DevExpress:26_1from
EugeniyKiyashko:26_1_migrate_to_playwrite

Conversation

@EugeniyKiyashko
Copy link
Copy Markdown
Contributor

No description provided.

@EugeniyKiyashko EugeniyKiyashko self-assigned this Jun 4, 2026
Copilot AI review requested due to automatic review settings June 4, 2026 13:48
@EugeniyKiyashko EugeniyKiyashko requested a review from a team as a code owner June 4, 2026 13:48
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Playwright-based visual regression test runner for demos (common screenshots) and wires it into the monorepo (Nx target + package scripts) and CI (new GitHub Actions workflow), replacing/augmenting the existing TestCafe-driven approach for this scenario.

Changes:

  • Introduces Playwright common-screenshots spec + supporting utilities (demo discovery, page prep, screenshot comparison + diff artifacts).
  • Adds Playwright configuration and Nx/script entry points to run the new suite.
  • Adds a dedicated GitHub Actions workflow to build DevExtreme artifacts and execute Playwright screenshots in a matrix.

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pnpm-lock.yaml Locks the new Playwright dependency and resulting transitive dependency graph changes.
apps/demos/utils/visual-tests/playwright/screenshot-comparer.ts Implements screenshot capture + looks-same comparison with diff/mask handling and artifact copying.
apps/demos/utils/visual-tests/playwright/common-screenshots.spec.ts Playwright test suite that iterates demos/frameworks and validates screenshots.
apps/demos/utils/visual-tests/playwright/common-screenshots-utils.ts Shared utilities for filtering/selection, client script injection, URL building, and page prep.
apps/demos/tsconfig.json Includes playwright.*.ts files in TypeScript compilation for the demos app.
apps/demos/tsconfig.eslint.json Includes playwright.*.ts files for ESLint type-aware linting.
apps/demos/project.json Adds Nx target test-playwright-common-screenshots.
apps/demos/playwright.common-screenshots.config.ts Playwright runner configuration (workers, retries, chromium args/channel, artifact output dirs).
apps/demos/package.json Adds @playwright/test dependency and test-playwright-common-screenshots script.
.github/workflows/visual-tests-demos-playwright.yml New CI workflow to run Playwright common screenshots in a theme/partition matrix.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

@EugeniyKiyashko EugeniyKiyashko marked this pull request as draft June 4, 2026 13:56
@EugeniyKiyashko EugeniyKiyashko force-pushed the 26_1_migrate_to_playwrite branch from 11b4eb0 to eb84386 Compare June 4, 2026 14:01
@EugeniyKiyashko EugeniyKiyashko force-pushed the 26_1_migrate_to_playwrite branch from eb84386 to 8887cdf Compare June 5, 2026 11:08
…ent)

Apply the comparer overrides from theme-utils.js#testScreenshot universally
so fluent and material both use textDiffTreshold: 0.2 along with the
existing tolerance/antialiasingTolerance: 20. The previous code only
applied textDiffTreshold for material, which kept fluent stricter than
TestCafe.

Set PLAYWRIGHT_LEGACY_SCREENSHOT=1 for the common-screenshots and
common-accessibility jobs so chromium uses the legacy CDP screenshot
surface. Playwright 1.49+ enables CDPScreenshotNewSurface by default,
which renders text antialiasing differently from TestCafe's chrome:headless
path and causes massive material diffs against the existing etalons.

Also bring in the accessibility scaffolding (workflow job, nx target,
playwright spec/utils) that was queued up alongside this fix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants