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