Skip to content

Testing: WebAuthn/passkey ceremony, select-authenticator, RTL, zoom, forced-colors, and CSP coverage #107

Closed

Description

@Xore

Parent

Follow-up to #102 (closed) and part of #91.

Context

#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.

Scope

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.

Activity

  1. added a commit that references this issue on Aug 9, 2026
  2. Xore commented on Aug 9, 2026

    @Xore
    OwnerAuthor

    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.

  3. added a commit that references this issue on Aug 9, 2026
  4. Xore commented on Aug 9, 2026

    @Xore
    OwnerAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions