from uuid import uuid4


def test_login_rate_limit(client, monkeypatch):
    from app.core.config import settings

    monkeypatch.setattr(settings, "enable_rate_limit", True)

    email = f"missing-{uuid4().hex}@example.com"
    for _ in range(5):
        response = client.post(
            "/api/v1/auth/login",
            json={"email": email, "password": "Valid123"},
        )
        assert response.status_code == 401

    blocked = client.post(
        "/api/v1/auth/login",
        json={"email": email, "password": "Valid123"},
    )
    assert blocked.status_code == 429
    assert blocked.json()["detail"] == "RATE_LIMIT_EXCEEDED"
