Initial Commit

This commit is contained in:
belviskhoremk
2026-05-12 00:34:21 +00:00
commit d2dc43b16f
57 changed files with 6056 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
"""Admin dashboard stats — verify all fields the frontend needs are present."""
from unittest.mock import AsyncMock
async def test_overview_returns_all_frontend_fields(admin_client, mock_db):
mock_db.fetchval = AsyncMock(return_value=0)
r = await admin_client.get("/api/v1/admin/stats/overview")
assert r.status_code == 200
data = r.json()["data"]
# Revenue (extra, for future admin analytics)
assert "revenue_today" in data
assert "revenue_week" in data
assert "revenue_month" in data
# Fields the frontend dashboard currently displays
assert "products_count" in data
assert "bookings_pending" in data
assert "bookings_confirmed" in data
assert "catalog_value" in data
# Bonus fields
assert "low_stock_count" in data
assert "new_customers_month" in data
async def test_overview_requires_admin(auth_client, mock_db):
mock_db.fetchval = AsyncMock(return_value=0)
r = await auth_client.get("/api/v1/admin/stats/overview")
assert r.status_code == 403
async def test_overview_requires_auth(anon_client):
r = await anon_client.get("/api/v1/admin/stats/overview")
assert r.status_code == 401
async def test_revenue_stats(admin_client, mock_db):
mock_db.fetch = AsyncMock(return_value=[])
r = await admin_client.get("/api/v1/admin/stats/revenue?period=month")
assert r.status_code == 200
data = r.json()["data"]
assert "orders" in data
assert "bookings" in data
async def test_revenue_invalid_period(admin_client):
r = await admin_client.get("/api/v1/admin/stats/revenue?period=decade")
assert r.status_code == 422
async def test_activity_feed(admin_client, mock_db):
mock_db.fetch = AsyncMock(return_value=[])
r = await admin_client.get("/api/v1/admin/stats/activity")
assert r.status_code == 200
assert isinstance(r.json()["data"], list)