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>
40 lines
1.4 KiB
Python
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"
|