Skip to content

feat(visual-tests): replace percy with vizzly ember sdk#186

Open
nicksteffens wants to merge 4 commits intomainfrom
nicksteffens-claude/sc-189157/vizzly-ember-prototype
Open

feat(visual-tests): replace percy with vizzly ember sdk#186
nicksteffens wants to merge 4 commits intomainfrom
nicksteffens-claude/sc-189157/vizzly-ember-prototype

Conversation

@nicksteffens
Copy link
Member

@nicksteffens nicksteffens commented Mar 2, 2026

Summary

Prototype spike (sc-189157) replacing Percy with Vizzly for visual regression testing in the Fluid Ember design system.

  • Bumps volta Node pin 14.17.122.14.0 (Vizzly hard requirement)
  • Installs @vizzly-testing/cli and @vizzly-testing/ember
  • Wraps testem.js with configure() from @vizzly-testing/ember — Vizzly hooks into Testem and uses Playwright under the hood for screenshot capture
  • Adds tests/helpers/vizzly-snapshot.js as a drop-in for percy-snapshot.js (same API, same call sites, just calls vizzlyScreenshot internally)
  • Migrates all 12 integration test files: import swap only, zero call site changes
  • Updates CI: installs Playwright Chromium, swaps PERCY_TOKENVIZZLY_TOKEN, runs vizzly run "ember exam" instead of percy exec -- ember exam

Known blocker: ember-cli 3.28 incompatible with Node 22

The test job crashes with exit code 134 (SIGABRT) because ember-cli 3.28 uses the esm package which calls a Node.js internal API (InternalModuleStat) that was changed in Node 22. This is a hard incompatibility — not a Vizzly issue.

Vizzly requires Node ≥ 22. ember-cli 3.28 only supports Node 12/14/16.

To unblock this migration, Fluid needs to upgrade to a version of ember-cli that supports Node 22 (ember-cli 4.x+, which requires Ember 4+). That is a separate, significant upgrade track.

The Vizzly integration code in this PR is correct — the pattern will work once the ember-cli upgrade is complete.

Test plan

  • Upgrade ember-cli / Ember to a Node 22-compatible version (prerequisite)
  • Add VIZZLY_TOKEN secret to movableink/fluid GitHub repo settings
  • Verify CI passes end-to-end
  • Run yarn vizzly:tdd locally to confirm screenshots appear in local TDD dashboard

🤖 Generated with Claude Code

nicksteffens and others added 4 commits March 2, 2026 16:09
- Bump volta node pin 14 → 22 (Vizzly hard requirement)
- Install @vizzly-testing/cli and @vizzly-testing/ember
- Wrap testem.js with configure() from @vizzly-testing/ember
- Add vizzly-snapshot.js helper as drop-in for percy-snapshot.js
- Migrate all 12 integration test files to import vizzly-snapshot
- Add vizzly:test and vizzly:tdd npm scripts
- Update CI: swap PERCY_TOKEN → VIZZLY_TOKEN, install Playwright Chromium

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Downgrade volta node pin 22 → 20 (vizzly supports node 20+)
- Replace @mozaic-ds/postcss-sass (bundles source-map@0.7 WASM) with
  @csstools/postcss-sass@5.1.1 (no nested source-map, postcss 8 compatible)
- Upgrade ember-auto-import 1.x → 2.x to support package.json exports field
  required by @vizzly-testing/ember/test-support
- Add webpack@5 devDependency (required peer dep of ember-auto-import@2)
- Add .vizzly/ to .gitignore (local TDD baseline data)

All 85 tests pass, 43 visual snapshots captured in local TDD mode.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant