from fastapi.testclient import TestClient from backend.app.main import app client = TestClient(app) def test_user_config_api_and_profile_page(): login = client.post('/api/auth/login', json={ 'username': 'alice', 'password': 'secret123', }).json() headers = {'Authorization': f"Bearer {login['access_token']}"} profile_response = client.get('/api/user/me', headers=headers) assert profile_response.status_code == 200 payload = profile_response.json() assert payload['username'] == 'alice' update_response = client.put('/api/user/me', json={ 'username': 'should-not-change', 'bio': 'Updated bio', 'avatar_url': 'https://example.com/new-avatar.png' }, headers=headers) assert update_response.status_code == 200 page_response = client.get('/profile') assert page_response.status_code == 200 assert 'Profile' in page_response.text assert 'Loading...' in page_response.text assert 'name="username"' not in page_response.text assert '' in page_response.text assert 'https://example.com/avatar.png' in page_response.text assert 'value="mastodon.social"' in page_response.text assert 'From my #LinkLog: "' in page_response.text assert 'id="admin-link"' in page_response.text assert 'class="login-button hidden"' in page_response.text assert 'id="logout-button" class="logout-button hidden"' in page_response.text