extends SceneTree var failures := 0 func _initialize() -> void: call_deferred("_run") func _run() -> void: var dashboard_service = root.get_node("DashboardService") var prior_data: Dictionary = dashboard_service.data dashboard_service.data = _dashboard_data() var dashboard = load("res://scripts/ui/dashboard_screen.gd").new() dashboard.size = Vector2(1280, 900) root.add_child(dashboard) await process_frame dashboard._render() await process_frame _assert(dashboard.system_list.get_child_count() == 14, "dashboard should render all 14 Step 3 systems") _assert(dashboard.rating_toggle.button_pressed, "rating should be the default trend mode") _assert(dashboard.trend_chart.mode == "rating", "chart should initially render rating history") dashboard._set_trend_mode("accuracy") _assert(dashboard.trend_chart.mode == "accuracy", "correct percentage toggle should switch the chart series") _assert(dashboard.trend_chart.points.size() == 30, "chart should retain all 30 calendar points") dashboard.queue_free() dashboard_service.data = prior_data await process_frame quit(1 if failures > 0 else 0) func _dashboard_data() -> Dictionary: var systems: Array = [] for index in range(14): systems.append({ "system": "System %02d" % index, "correct": 1 if index == 0 else 0, "total": 1 if index == 0 else 0, "accuracy": 100 if index == 0 else 0 }) var trend: Array = [] for index in range(30): trend.append({ "dateUtc": "2026-07-%02dT00:00:00Z" % (index + 1), "correct": 1 if index % 2 == 0 else 0, "total": 1 if index % 2 == 0 else 0, "accuracy": 100 if index % 2 == 0 else 0, "questionBankRating": 1000 + index }) return { "questionBankRating": 1029, "ratedQuestionCount": 30, "performanceTrend": trend, "systems": systems, "weeklyActivity": [], "recentActivity": [] } func _assert(condition: bool, message: String) -> void: if condition: return failures += 1 push_error(message)