from fastapi.testclient import TestClient from ddgs_api.api import create_app def test_health_endpoint_returns_ok(monkeypatch): monkeypatch.setenv("API_BEARER_TOKEN", "secret-token") client = TestClient(create_app()) response = client.get("/health") assert response.status_code == 200 assert response.json() == {"status": "ok"} def test_search_requires_authorization_header(monkeypatch): monkeypatch.setenv("API_BEARER_TOKEN", "secret-token") client = TestClient(create_app()) response = client.post("/search", json={"query": "openai"}) assert response.status_code == 401 assert response.json() == {"detail": "Unauthorized"} def test_search_returns_results(monkeypatch): monkeypatch.setenv("API_BEARER_TOKEN", "secret-token") monkeypatch.setenv("DDGS_REGION", "wt-wt") captured = {} def fake_search(query, **kwargs): captured["query"] = query captured["kwargs"] = kwargs return [{"title": "Result", "href": "https://example.com", "markdown": "content"}] monkeypatch.setattr("ddgs_api.api.ddgs_search", fake_search) client = TestClient(create_app()) response = client.post( "/search", headers={"Authorization": "Bearer secret-token"}, json={"query": "openai", "max_results": 1}, ) assert response.status_code == 200 payload = response.json() assert payload["query"] == "openai" assert payload["count"] == 1 assert payload["results"][0]["title"] == "Result" assert captured["query"] == "openai" assert captured["kwargs"]["region"] == "wt-wt" assert captured["kwargs"]["max_results"] == 1