# retoor <retoor@molodetz.nl>

import time
import requests
from tests.conftest import BASE_URL
from devplacepy.database import get_table, refresh_snapshot
_counter_aiusage = [0]
JSON_aiusage = {"Accept": "application/json"}
def _db_user(name):
    refresh_snapshot()
    return get_table("users").find_one(username=name)
def _admin_aiusage(seeded_db):
    key = _db_user("alice_test")["api_key"]
    s = requests.Session()
    s.headers.update({"X-API-KEY": key})
    return s


def test_admin_ai_usage_page_requires_admin(app_server):
    r = requests.get(f"{BASE_URL}/admin/ai-usage", allow_redirects=False)
    assert r.status_code in (302, 303, 401, 403)


def test_admin_ai_usage_page_returns_html(app_server, seeded_db):
    admin = _admin_aiusage(seeded_db)
    r = admin.get(f"{BASE_URL}/admin/ai-usage")
    assert r.status_code == 200
    assert "AI usage" in r.text or "ai-usage" in r.text


def test_admin_ai_usage_data_requires_auth(app_server):
    r = requests.get(f"{BASE_URL}/admin/ai-usage/data", headers=JSON_aiusage)
    assert r.status_code == 401


def test_admin_ai_usage_data_returns_json(app_server, seeded_db):
    admin = _admin_aiusage(seeded_db)
    r = admin.get(f"{BASE_URL}/admin/ai-usage/data", headers=JSON_aiusage)
    assert r.status_code == 200
    data = r.json()
    assert isinstance(data, dict)
