Add auto-progression engine (ProgressionService) with rep increase, weight increase, deload, and felt-easy acceleration rules. Add AnalyticsService for user stats, exercise progress charts, and volume-by-day data. New dashboard and schedule routes with Chart.js visualizations. Progression badges shown inline on workout day view. Navigation updated with Dashboard and Schedule links. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
22 lines
742 B
Python
22 lines
742 B
Python
"""Tests for dashboard routes."""
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
|
|
class TestDashboard:
|
|
"""Tests for GET /dashboard."""
|
|
|
|
def test_dashboard_requires_auth(self, client: TestClient) -> None:
|
|
"""GET /dashboard should require admin login."""
|
|
response = client.get("/dashboard", follow_redirects=False)
|
|
assert response.status_code in (401, 303)
|
|
|
|
|
|
class TestExerciseProgress:
|
|
"""Tests for GET /dashboard/exercise/<id>."""
|
|
|
|
def test_exercise_progress_requires_auth(self, client: TestClient) -> None:
|
|
"""GET /dashboard/exercise/1 should require admin login."""
|
|
response = client.get("/dashboard/exercise/1", follow_redirects=False)
|
|
assert response.status_code in (401, 303)
|