fix: add health checks and repair dashboard contracts
This commit is contained in:
@@ -21,6 +21,35 @@ def test_server_import_does_not_start_scheduler_threads(server):
|
||||
assert server._threads_started_during_import == []
|
||||
|
||||
|
||||
def test_frontend_uses_backtest_metric_values_contract(server):
|
||||
assert ".filter(d => d.metric_values && d.metric_values[metricKey] != null)" in server.DASHBOARD_HTML
|
||||
assert ".map(d => ({ date: d.date, value: d.metric_values[metricKey]" in server.DASHBOARD_HTML
|
||||
|
||||
|
||||
def test_dashboard_does_not_issue_duplicate_initial_backtest_request(server):
|
||||
assert "const br = await fetch('/api/backtest');" not in server.DASHBOARD_HTML
|
||||
assert server.DASHBOARD_HTML.count("fetch('/api/backtest?mode=' + currentMode)") == 1
|
||||
|
||||
|
||||
def test_health_endpoints_distinguish_process_liveness_from_data_readiness(server, monkeypatch):
|
||||
assert server.health_live() == {"status": "ok"}
|
||||
|
||||
monkeypatch.setattr(server, "load_cache", lambda: {})
|
||||
unavailable = server.health_ready()
|
||||
assert unavailable.status_code == 503
|
||||
|
||||
monkeypatch.setattr(
|
||||
server,
|
||||
"load_cache",
|
||||
lambda: {"_scored": {"composite_score": 72, "scored_count": 8}},
|
||||
)
|
||||
assert server.health_ready() == {
|
||||
"status": "ready",
|
||||
"score": 72,
|
||||
"scored_metrics": 8,
|
||||
}
|
||||
|
||||
|
||||
def test_server_cache_and_history_use_reliable_persistence(server, monkeypatch, tmp_path):
|
||||
monkeypatch.setattr(server, "CACHE_PATH", str(tmp_path / "cache.json"))
|
||||
monkeypatch.setattr(server, "HISTORY_PATH", str(tmp_path / "scores.jsonl"))
|
||||
|
||||
Reference in New Issue
Block a user