teecup/tests/test_profile_locale.py
Erol Haagenrud 5355aba75d Ekte i18n (next-intl) + hjelpeside/FAQ + Spillere-tabellen slått videre sammen (ADR-094)
Grunnmur for oversettelse (cookie-basert, ingen URL-endring), ny
/hjelp-side med oversikt+FAQ på norsk og engelsk, og Deltakere+
Rundedeltakelse slått sammen til én bred tabell i Spillere-steget.
Resten av appens ~2200 strenger og 479 backend-feilkoder er bevisst
utsatt til senere, avgrensede runder -- se FEATURE_BACKLOG.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 07:54:07 +02:00

40 lines
1.4 KiB
Python

"""
preferred_locale kunne FØR kun settes ved førstegangs-signup (ADR-015)
-- aldri endres etterpå. ADR-094 la feltet til den allerede generiske
ProfileUpdate (PATCH /profile) slik at language-switcher.tsx kan endre
det når som helst."""
import pytest
from fastapi import HTTPException
from app.auth import CurrentUser
from app.routers.auth import ProfileUpdate, update_profile
from tests.conftest import create_user
import app.db as app_db
async def test_preferred_locale_can_be_changed_after_signup(pool):
user_id = await create_user()
out = await update_profile(
ProfileUpdate(preferred_locale="en"),
user=CurrentUser(user_id=user_id),
)
assert out.preferred_locale == "en"
async with app_db.plain_connection() as conn:
row = await conn.fetchrow("SELECT preferred_locale FROM app_user WHERE id = $1", user_id)
assert row["preferred_locale"] == "en"
async def test_invalid_locale_is_rejected(pool):
with pytest.raises(Exception):
ProfileUpdate(preferred_locale="fr")
async def test_updating_other_fields_leaves_locale_unchanged(pool):
user_id = await create_user()
await update_profile(ProfileUpdate(preferred_locale="en"), user=CurrentUser(user_id=user_id))
out = await update_profile(ProfileUpdate(bio="Elsker links-golf"), user=CurrentUser(user_id=user_id))
assert out.preferred_locale == "en"