Files
john 1aaef71f52 Initial commit: Happy Up monorepo through Sprint 5.
Document-driven MVP with FastAPI backend, Vue H5, WeChat mini shell, product demo, and Docker dev stack.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 11:42:40 +08:00

55 lines
1.7 KiB
Python

def test_training_plan_and_record(client, auth_headers):
child_id = client.post(
"/api/children",
headers=auth_headers,
json={"name": "训练测试", "birthday": "2016-01-01", "gender": "male"},
).json()["data"]["id"]
plan_resp = client.post(
"/api/training/plans",
headers=auth_headers,
json={
"childId": child_id,
"goal": "改善头前伸",
"cycleDays": 28,
},
)
assert plan_resp.status_code == 201
plan = plan_resp.json()["data"]
plan_id = plan["id"]
assert plan["status"] == "active"
assert plan["detail"]["cycleDays"] == 28
detail = client.get(f"/api/training/plans/{plan_id}", headers=auth_headers)
assert detail.status_code == 200
record_resp = client.post(
f"/api/training/plans/{plan_id}/records",
headers=auth_headers,
json={
"exerciseId": 1,
"completed": True,
"score": 81,
"durationSeconds": 272,
},
)
assert record_resp.status_code == 201
assert record_resp.json()["data"]["score"] == 81
updated = client.get(f"/api/training/plans/{plan_id}", headers=auth_headers).json()["data"]
assert updated["detail"]["completedDays"] == 1
def test_admin_dashboard(client, auth_headers):
client.post(
"/api/children",
headers=auth_headers,
json={"name": "看板测试", "birthday": "2015-06-01", "gender": "female"},
)
dash = client.get("/api/admin/dashboard", headers=auth_headers)
assert dash.status_code == 200
data = dash.json()["data"]
assert "newChildren" in data
assert "activePlans" in data
assert data["newChildren"] >= 1