Files
computer-playbook/roles/web-app-kix/files/playwright/test-biber-persona.js
kevinveenbirkenbachandClaude Opus 4.7 ba676cf354 refactor(web-app-kix/playwright): split spec into per-scenario modules
Mirror the nextcloud / friendica layout so each kix scenario lives in
its own `test-*.js` and `_shared.js` carries only the logic consumed
by more than one file. `playwright.spec.js` becomes a thin orchestrator
that pulls each test module's `register(shared)` hook.

Layout

  playwright.spec.js          orchestrator (test.use, beforeEach, requires)
  _shared.js                  cross-cutting: env (appBaseUrl,
                              canonicalDomain, oidcIssuerUrl, logoutUrl,
                              oauth2Enabled, ldapEnabled), performKixLogin,
                              runKixLoginLogoutFlow, beforeEach, persona
                              + service-gating re-exports
  test-kix-root-tls-hsts.js   `kix root emits TLS+HSTS`
  test-login-administrator.js admin OAuth2-proxy + Keycloak + KIX-LDAP
                              flow (ADMIN_USERNAME/PASSWORD local)
  test-login-biber.js         same flow for biber + the Keycloak admin
                              REST helper `ensureUserInGroup`
                              (KEYCLOAK_*, KIX_USER_GROUP_PATH,
                              BIBER_USERNAME/PASSWORD local)
  test-guest-persona.js       `guest: public-landing → auth chain`
  test-biber-persona.js       `biber: app → universal logout`

Per the strict shared-vs-local split, only `appBaseUrl`,
`canonicalDomain`, `oidcIssuerUrl`, `logoutUrl` and the two service
flags stay in `_shared.js`; admin credentials, biber credentials and
the Keycloak admin API env live in their consuming `test-*.js`.
`ensureUserInGroup` moves with its sole caller (biber) and keeps its
`api.dispose()` cleanup.

Behavioral delta: env validation is now per-consumer — TLS / persona /
admin-login tests no longer fail in `beforeEach` for missing BIBER_*
or KEYCLOAK_*; they validate the env they actually touch. Matches the
nextcloud/friendica diagnostic pattern.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 17:33:33 +02:00

8 lines
196 B
JavaScript

const { test } = require("@playwright/test");
exports.register = function (shared) {
test("biber: app → universal logout", async ({ page }) => {
await shared.runBiberFlow(page);
});
};