Skip to content

fix: E2E mocking, visual regression stability, bundle size budget, accessible loading fallback#1028

Merged
hman38705 merged 3 commits into
solutions-plug:mainfrom
joshuagit706:main
Jun 30, 2026
Merged

fix: E2E mocking, visual regression stability, bundle size budget, accessible loading fallback#1028
hman38705 merged 3 commits into
solutions-plug:mainfrom
joshuagit706:main

Conversation

@joshuagit706

Copy link
Copy Markdown

Description

Resolves four open issues in a single PR: E2E backend mocking, visual regression environment stability, bundle size budget enforcement, and accessible loading fallback.

Type of Change

  • Bug fix
  • CI / tooling change

Testing Done

  • Unit test added for loading fallback ARIA attributes and axe scan
  • Mocked E2E suite runs without a backend
  • Visual regression tests use maxDiffPixelRatio: 0.01 and a pinned Docker image
  • Bundle size checked via bundlewatch against defined budgets

Bundle Size

Chunk Budget
vendor.js 250 kB
main*.js 150 kB
pages/_app*.js 100 kB

Checklist

  • Tests pass locally
  • Documentation updated (if applicable)
  • No breaking changes

Related Issues

closes #948
closes #949
closes #950
closes #951

…lug#950 solutions-plug#951 — E2E mocking, visual regression stability, bundle size budget, accessible loading fallback

closes solutions-plug#948
closes solutions-plug#949
closes solutions-plug#950
closes solutions-plug#951

solutions-plug#948 — Split E2E into mocked (PR CI) and integration (merge to main) suites.
Added playwright.config.ts project split with MOCKED_SPECS list; mocked specs
use page.route() and need no live backend. New e2e-mocked CI job runs on every
PR; real-backend tests remain in the staging workflow triggered on main merges.

solutions-plug#949 — Added maxDiffPixelRatio: 0.01 to every toHaveScreenshot() call in
visual-regression.spec.ts to absorb sub-pixel font rendering differences.
Added frontend/e2e/docker/Dockerfile.visual-regression with pinned font
packages (fonts-liberation, fonts-noto-core, fontconfig) for a fixed
rendering environment. Updated e2e/README.md with Docker baseline update
process. Added e2e-visual-regression CI job that runs tests inside the
Docker image.

solutions-plug#950 — Added @next/bundle-analyzer (15.3.4) and bundlewatch (2.3.3) dev
dependencies. Wrapped nextConfig with withBundleAnalyzer in next.config.js
(enabled via ANALYZE=true). Added bundlewatch.config.json with size budgets
for vendor, main, and _app chunks. Added 'analyze' and 'bundlewatch' npm
scripts. Added bundle-size CI job that builds the app and runs bundlewatch.
Updated PR template with a bundle size table for reviewers.

solutions-plug#951 — Replaced plain <div role='status' aria-live='polite'>Loading...</div>
fallbacks in page.tsx with the existing LoadingSpinner component, which
already carries role='status', aria-live='polite', and aria-label. Added
frontend/src/app/__tests__/page.test.tsx verifying the fallback element has
the correct ARIA attributes and no axe violations.
@drips-wave

drips-wave Bot commented Jun 29, 2026

Copy link
Copy Markdown

@joshuagit706 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

…utions-plug#950 solutions-plug#951 — E2E mocking, visual regression stability, bundle size budget, accessible loading fallback"

This reverts commit 5314bef.
…lug#950 solutions-plug#951 — E2E mocking, visual regression stability, bundle size budget, accessible loading fallback

closes solutions-plug#948
closes solutions-plug#949
closes solutions-plug#950
closes solutions-plug#951

solutions-plug#948 — Split E2E into mocked (PR CI) and integration (merge to main) suites.
Added playwright.config.ts project split with MOCKED_SPECS list; mocked specs
use page.route() and need no live backend. New e2e-mocked CI job runs on every
PR; real-backend tests remain in the staging workflow triggered on main merges.

solutions-plug#949 — Added maxDiffPixelRatio: 0.01 to every toHaveScreenshot() call in
visual-regression.spec.ts to absorb sub-pixel font rendering differences.
Added frontend/e2e/docker/Dockerfile.visual-regression with pinned font
packages (fonts-liberation, fonts-noto-core, fontconfig) for a fixed
rendering environment. Updated e2e/README.md with Docker baseline update
process. Added e2e-visual-regression CI job that runs tests inside the
Docker image.

solutions-plug#950 — Added @next/bundle-analyzer (15.3.4) and bundlewatch (2.3.3) dev
dependencies. Wrapped nextConfig with withBundleAnalyzer in next.config.js
(enabled via ANALYZE=true). Added bundlewatch.config.json with size budgets
for vendor, main, and _app chunks. Added 'analyze' and 'bundlewatch' npm
scripts. Added bundle-size CI job that builds the app and runs bundlewatch.
Updated PR template with a bundle size table for reviewers.

solutions-plug#951 — Replaced plain <div role='status' aria-live='polite'>Loading...</div>
fallbacks in page.tsx with the existing LoadingSpinner component, which
already carries role='status', aria-live='polite', and aria-label. Added
frontend/src/app/__tests__/page.test.tsx verifying the fallback element has
the correct ARIA attributes and no axe violations.
@hman38705 hman38705 merged commit e67a3bb into solutions-plug:main Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants