import json
import logging

from app.core.logging_config import JsonFormatter


def test_json_formatter_outputs_structured_log():
    formatter = JsonFormatter()
    record = logging.makeLogRecord(
        {
            "name": "test.logger",
            "level": logging.INFO,
            "levelno": logging.INFO,
            "levelname": "INFO",
            "pathname": __file__,
            "lineno": 10,
            "msg": "hello world",
            "args": (),
            "exc_info": None,
        }
    )
    record.method = "GET"
    record.path = "/api/v1/policies"
    record.status_code = 200
    payload = json.loads(formatter.format(record))
    assert payload["level"] == "INFO"
    assert payload["message"] == "hello world"
    assert payload["method"] == "GET"
    assert payload["path"] == "/api/v1/policies"
    assert payload["status_code"] == 200
