from fastapi.testclient import TestClient from main import app from scripts.init_db import init_db def test_login_form_post_does_not_trigger_json_error(): """POST form-encoded data to /login and assert middleware doesn't return the JSON "Invalid JSON payload" error which indicates the middleware attempted to parse non-JSON bodies. """ init_db() client = TestClient(app) resp = client.post( "/login", data={"username": "no-such-user", "password": "x"}, headers={"Accept": "text/html"}, ) content_type = resp.headers.get("content-type", "") # If middleware raised the JSON error we'd get an application/json body # with detail == "Invalid JSON payload". Ensure that's not the case. if content_type.startswith("application/json"): body = resp.json() assert body.get("detail") != "Invalid JSON payload", ( "Middleware attempted to parse non-JSON body as JSON and failed" ) # At minimum the endpoint should not error with the JSON payload message. assert True