From 2d3610389b08e618ca956e7e3f373b48d4de6248 Mon Sep 17 00:00:00 2001 From: multiplex55 <6619098+multiplex55@users.noreply.github.com> Date: Sat, 17 Jan 2026 15:38:07 -0500 Subject: [PATCH] Update diagnostics snapshot gating --- src/gui/mod.rs | 58 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/gui/mod.rs b/src/gui/mod.rs index c9234de..4a5bb64 100644 --- a/src/gui/mod.rs +++ b/src/gui/mod.rs @@ -3569,7 +3569,7 @@ impl eframe::App for LauncherApp { let has_diagnostics_widget = self.has_diagnostics_widget(); let show_diagnostics_widget = self.show_dashboard_diagnostics || has_diagnostics_widget; - let diagnostics = if show_diagnostics_widget { + let diagnostics = if self.show_dashboard_diagnostics || has_diagnostics_widget { Some(self.dashboard.diagnostics_snapshot()) } else { None @@ -4747,6 +4747,62 @@ mod tests { assert!(app.show_dashboard_diagnostics || app.has_diagnostics_widget()); } + #[test] + fn diagnostics_context_includes_snapshot_when_widget_present() { + let ctx = egui::Context::default(); + let mut app = new_app(&ctx); + app.show_dashboard_diagnostics = false; + app.dashboard.slots = vec![NormalizedSlot { + id: None, + widget: "diagnostics".to_string(), + row: 0, + col: 0, + row_span: 1, + col_span: 1, + settings: json!({}), + overflow: OverflowMode::Scroll, + }]; + + let has_diagnostics_widget = app.has_diagnostics_widget(); + let show_diagnostics_widget = app.show_dashboard_diagnostics || has_diagnostics_widget; + let diagnostics = if app.show_dashboard_diagnostics || has_diagnostics_widget { + Some(app.dashboard.diagnostics_snapshot()) + } else { + None + }; + + assert!(show_diagnostics_widget); + assert!(diagnostics.is_some()); + } + + #[test] + fn diagnostics_context_omits_snapshot_when_disabled_and_missing_widget() { + let ctx = egui::Context::default(); + let mut app = new_app(&ctx); + app.show_dashboard_diagnostics = false; + app.dashboard.slots = vec![NormalizedSlot { + id: None, + widget: "notes".to_string(), + row: 0, + col: 0, + row_span: 1, + col_span: 1, + settings: json!({}), + overflow: OverflowMode::Scroll, + }]; + + let has_diagnostics_widget = app.has_diagnostics_widget(); + let show_diagnostics_widget = app.show_dashboard_diagnostics || has_diagnostics_widget; + let diagnostics = if app.show_dashboard_diagnostics || has_diagnostics_widget { + Some(app.dashboard.diagnostics_snapshot()) + } else { + None + }; + + assert!(!show_diagnostics_widget); + assert!(diagnostics.is_none()); + } + #[test] fn image_panel_closes_with_escape() { let ctx = egui::Context::default();