import httpx import respx from starlette.testclient import TestClient from resonance_engine.config import settings from tests.unit.helpers import override_settings def test_login_redirects_to_auth0_and_sets_state(client: TestClient) -> None: client.cookies.clear() with override_settings(auth0_domain="test.auth0.com", auth0_client_id="cid"): response = client.get("/auth/login", follow_redirects=False) assert response.status_code == 307 assert response.headers["location"].startswith("https://test.auth0.com/authorize?") assert response.cookies.get("oauth_state") def test_callback_rejects_bad_state(client: TestClient) -> None: client.cookies.clear() client.cookies.set("oauth_state", "good") response = client.get("/oauth2/callback?code=abc&state=bad", follow_redirects=False) assert response.status_code == 400 def test_callback_shows_error_page_on_auth0_error(client: TestClient) -> None: response = client.get( "/oauth2/callback?error=invalid_request" "&error_description=no+connections+enabled+for+the+client", follow_redirects=False, ) assert response.status_code == 400 assert "no connections enabled for the client" in response.text def test_callback_error_page_escapes_reflected_params(client: TestClient) -> None: response = client.get("/oauth2/callback?error=%3Cscript%3E", follow_redirects=False) assert response.status_code == 400 assert "