- add hidden dev-only seed endpoint /api/admin/orders/dev-seed - overdue_pending_once: create one 2-day-old pending order with draft intake - cleanup_demo_seed: delete demo-tagged seeded orders - restrict hidden seed route to non-prod env - avoid decrypting all orders during cleanup; query ids/tags directly from SQL - dashboard hidden entry: - title id=dashboard-title - dev-seed-panel hidden by default - opens via 5 title clicks or ?seed-tools=1 - buttons: 补 1 笔超时待办 / 清理演示造数 - dashboard JS: - postDevSeed() - panel show/hide - refresh dashboard after seed/cleanup - tests: - route auth + create/cleanup flow - dashboard HTML/JS structure assertions - admin UI page exposes hidden entry markup - verification: - pytest 69 passed - browser: ?seed-tools=1 展开面板, 补造后 pending=8 overdue=1 missing=8, 清理后恢复 pending=7 overdue hidden
25 lines
905 B
Python
25 lines
905 B
Python
from __future__ import annotations
|
|
|
|
|
|
def test_admin_new_order_page_renders(client):
|
|
resp = client.get("/admin/orders/new")
|
|
assert resp.status_code == 200, resp.text
|
|
assert "后台手动添加订单" in resp.text
|
|
assert "/api/orders" in resp.text
|
|
assert "人工补录更直接" in resp.text
|
|
assert '/static/portal-ui.css' in resp.text
|
|
assert "考试省份" in resp.text
|
|
|
|
|
|
def test_dashboard_exposes_admin_quick_links(client):
|
|
resp = client.get("/dashboard")
|
|
assert resp.status_code == 200, resp.text
|
|
assert "/admin/orders/new" in resp.text
|
|
assert "/admin/notifications" in resp.text
|
|
assert "/admin/ops-alerts" in resp.text
|
|
assert 'id="dashboard-title"' in resp.text
|
|
assert 'id="dev-seed-panel"' in resp.text
|
|
assert 'id="dev-seed-overdue-btn"' in resp.text
|
|
assert 'id="dev-seed-clean-btn"' in resp.text
|
|
assert '?seed-tools=1' in resp.text
|