You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#102 added a real Playwright suite against a live disposable Keycloak instance (pinned to keycloak.lock's exact image+digest), covering shell geometry, a WCAG scan, staged identity/credential interaction, the theme toggle, JS-disabled fallback, and TOTP setup across all six historical viewport tiers -- wired into CI (#105, merged). It already caught and fixed two real bugs no static review had (a light-mode contrast break from an upstream !important override, and a Google Fonts CDN/privacy leak in the vendored xore-theme.css). Closed with real remaining gaps documented rather than claimed done. This issue tracks finishing them.
RTL smoke checks (realm.internationalizationEnabled / dir="rtl" per base/login/template.ftl).
200% zoom/reflow checks.
forced-colors media query smoke checks.
Simulated reduced-motion interaction -- the static prefers-reduced-motion CSS rule exists and is asserted structurally, but motion is not actually simulated/verified in the browser.
CSP violation assertions (currently only console-error and external-request assertions exist, not CSP-specific).
Reference
Suite lives in test/ in auth-backend (test/specs/login.spec.ts, test/docker-compose.test.yml, test/fixtures/realm-export.json). Local run instructions in docs/THEME-GUIDE.md's "Regression suite (#102)" section.
Substantially addressed in #109: real WebAuthn/passkey ceremonies (register, authenticate, and a deliberately-failed authenticate) via CDP's virtual authenticator, select-authenticator, RTL, 200% zoom, and forced-colors are all now covered against a real disposable Keycloak instance. Reopening scope note: CSP-specific violation assertions (as opposed to the existing console-error/external-request checks) are still open -- worth a follow-up issue if not already tracked, not done here.
Follow-up (#110, merged): closed the one explicit gap PR #109 left open -- "only console-error/external-request checks exist today" for CSP. Added:
A real `securitypolicyviolation` listener wired into the shared `trackPageHealth()` helper, so every existing test in the suite now asserts zero real CSP violations (not just incidental console-error overlap).
A dedicated test asserting the login page's actual CSP header matches Keycloak's real deployed default.
A dedicated test that deliberately triggers an object-src violation and confirms it's actually blocked -- proving enforcement, not just configuration.
All of #107's coverage areas (WebAuthn/passkey, select-authenticator, RTL, zoom, forced-colors, and now CSP) have real test coverage.
Activity
theme: audit and style remaining login pages (#106), add #107 test co…
Xore commentedon Aug 9, 2026
Substantially addressed in #109: real WebAuthn/passkey ceremonies (register, authenticate, and a deliberately-failed authenticate) via CDP's virtual authenticator, select-authenticator, RTL, 200% zoom, and forced-colors are all now covered against a real disposable Keycloak instance. Reopening scope note: CSP-specific violation assertions (as opposed to the existing console-error/external-request checks) are still open -- worth a follow-up issue if not already tracked, not done here.
test: add real CSP violation assertions (#107 remainder) (#110)
Xore commentedon Aug 9, 2026
Follow-up (#110, merged): closed the one explicit gap PR #109 left open -- "only console-error/external-request checks exist today" for CSP. Added:
All of #107's coverage areas (WebAuthn/passkey, select-authenticator, RTL, zoom, forced-colors, and now CSP) have real test coverage.