teecup/tests/test_profile_locale.py

41 lines
1.4 KiB
Python
Raw Normal View History

"""
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"