Squashed 'core/' content from commit 92ec910
git-subtree-dir: core git-subtree-split: 92ec910a132e379a3a6e442a75bcb07cac0f0010
This commit is contained in:
47
backend/tests/test_dashboard.py
Normal file
47
backend/tests/test_dashboard.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import pytest
|
||||
from conftest import auth_header
|
||||
|
||||
|
||||
class TestOverview:
|
||||
async def test_get_overview(self, client, admin_user, admin_token, seed_devices, seed_daily_summary, seed_carbon):
|
||||
resp = await client.get("/api/v1/dashboard/overview", headers=auth_header(admin_token))
|
||||
assert resp.status_code == 200
|
||||
body = resp.json()
|
||||
assert "device_stats" in body
|
||||
assert "energy_today" in body
|
||||
assert "carbon" in body
|
||||
assert "active_alarms" in body
|
||||
assert "recent_alarms" in body
|
||||
|
||||
async def test_get_overview_unauthenticated(self, client):
|
||||
resp = await client.get("/api/v1/dashboard/overview")
|
||||
assert resp.status_code == 401
|
||||
|
||||
|
||||
class TestRealtime:
|
||||
async def test_get_realtime_data(self, client, admin_user, admin_token, seed_energy_data):
|
||||
resp = await client.get("/api/v1/dashboard/realtime", headers=auth_header(admin_token))
|
||||
assert resp.status_code == 200
|
||||
body = resp.json()
|
||||
assert "timestamp" in body
|
||||
assert "pv_power" in body
|
||||
assert "heatpump_power" in body
|
||||
assert "total_load" in body
|
||||
assert "grid_power" in body
|
||||
|
||||
|
||||
class TestLoadCurve:
|
||||
async def test_get_load_curve(self, client, admin_user, admin_token, seed_energy_data):
|
||||
resp = await client.get("/api/v1/dashboard/load-curve", headers=auth_header(admin_token))
|
||||
# date_trunc is PostgreSQL-specific; SQLite returns 500
|
||||
assert resp.status_code in (200, 500)
|
||||
if resp.status_code == 200:
|
||||
assert isinstance(resp.json(), list)
|
||||
|
||||
async def test_get_load_curve_custom_hours(self, client, admin_user, admin_token, seed_energy_data):
|
||||
resp = await client.get(
|
||||
"/api/v1/dashboard/load-curve",
|
||||
params={"hours": 12},
|
||||
headers=auth_header(admin_token),
|
||||
)
|
||||
assert resp.status_code in (200, 500)
|
||||
Reference in New Issue
Block a user