1 Commits

Author SHA1 Message Date
878402e579 feat(fase-20): /settings language selector gains 'Euskera' + EU-01/02 e2e
Adds the third button to the language tray in /settings; the local state
union widens to 'en' | 'es' | 'eu' (matches the new LanguageCode). Each
button carries a stable `settings-language-{code}` testid for the e2e
hooks.

Playwright `tests/e2e/euskera.test.ts`:
  * EU-01 — Ana clicks the eu button; assertion lands on the selected-
    state class flip (synchronous proof the click reached
    switchLanguage) + a DB poll for `users.language='eu'`. We
    deliberately don't assert on the sidebar nav label re-rendering:
    ParaglideJS's {#key lang} re-render is wired to URL routing, not
    the runtime setLanguageTag call, so the visible labels only flip on
    the next navigation — a known cross-cutting gap outside Fase 20's
    scope.
  * EU-02 — Fresh browser context with locale + Accept-Language=eu;
    Eva logs in fresh and the Fase 10.8 bootstrap path UPDATEs
    users.language to 'eu'. /onboarding renders 'Ongi etorri…' — the
    Basque heading the seed produces. Cleanup restores Ana to seed 'es'.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 04:00:35 +02:00