This commit is contained in:
Mateusz Gruszczyński committed 2026-10-15 10:37:23 +02:00
1 parent 2ccc598b12
commit b757b34a31
26 files changed
+671 -116

No files matched your search

+59 -47
View File
@@ -1,62 +1,42 @@
#[test]
fn overview_registry_is_single_source_of_identifiers_and_visibility_defaults() {
fn overview_factory_preset_matches_registry_and_operator_visibility() {
let order = default_admin_dashboard_widgets();
let hidden = default_hidden_dashboard_widgets();
let unique: std::collections::HashSet<&str> = order.iter().map(String::as_str).collect();
assert_eq!(unique.len(), order.len());
assert_eq!(order.len(), DASHBOARD_WIDGETS.len());
assert_eq!(order.first().map(String::as_str), Some("requests"));
assert!(order.contains(&"http3".to_owned()));
assert!(hidden.contains(&"stream_overview".to_owned()));
assert!(hidden.contains(&"stream_backend_health".to_owned()));
assert_eq!(order, DASHBOARD_DEFAULT_PRESET.dashboard_widgets);
assert_eq!(hidden, DASHBOARD_DEFAULT_PRESET.dashboard_hidden_widgets);
assert_eq!(default_admin_dashboard_density(), "compact");
assert_eq!(DASHBOARD_DEFAULT_PRESET.overview_samples, 600);
for id in [
"backend_health",
"backend_activity",
"backend_errors",
"backend_latency",
"backend_traffic",
"backend_protocols",
"backend_requests",
"backend_capacity",
"backend_http5xx",
"backend_timeouts",
"backend_network",
"backend_retries",
"backend_queue",
"backend_rotations",
] {
assert!(order.contains(&id.to_owned()));
assert!(hidden.contains(&id.to_owned()));
}
for id in [
"extra_process_cpu",
"extra_process_rss",
"extra_process_fds",
"extra_open_connections",
"extra_websocket_active",
"extra_tls_error_rate",
"extra_request_error_rate",
"extra_cache_hit_rate",
"extra_cache_memory",
"extra_h2_share",
"backend_latency",
"extra_response_latency",
"extra_backend_unhealthy",
] {
assert!(order.contains(&id.to_owned()));
assert!(hidden.contains(&id.to_owned()));
}
for id in [
"traffic_chart",
"system_chart",
"connection_chart",
"cache_diagnostics",
"process_diagnostics",
"network_diagnostics",
"wide_transform_activity",
"wide_compression_activity",
"cache",
"backend_table",
] {
assert!(order.contains(&id.to_owned()));
assert!(!hidden.contains(&id.to_owned()));
assert!(order.contains(&id.to_owned()), "not registered: {id}");
assert!(
!hidden.contains(&id.to_owned()),
"should start visible: {id}"
);
}
for id in [
"bandwidth",
"backend_health",
"extra_process_cpu",
"stream_traffic",
"wide_cache_activity",
"www_status",
"www_requests",
"www_top_services",
] {
assert!(hidden.contains(&id.to_owned()), "should start hidden: {id}");
}
assert!(!hidden.contains(&"requests".to_owned()));
assert!(hidden.iter().all(|id| order.contains(id)));
assert!(validate_admin_preferences(&AdminPreferences::default()).is_ok());
}
@@ -180,6 +160,38 @@ fn old_widget_preferences_preserve_order_opt_in_and_survive_unknown_ids() {
assert!(validate_admin_preferences(&prefs).is_ok());
}
#[test]
fn saved_dashboard_order_and_visibility_survive_new_factory_preset() {
let mut prefs: AdminPreferences = serde_json::from_str(
r#"{
"dashboard_density":"normal",
"dashboard_widgets":["errors","requests","backend_traffic"],
"dashboard_hidden_widgets":["backend_traffic"]
}"#,
)
.unwrap();
reconcile_dashboard_widgets(&mut prefs);
assert_eq!(prefs.dashboard_density, "normal");
assert_eq!(
&prefs.dashboard_widgets[..3],
&["errors", "requests", "backend_traffic"]
);
assert!(!prefs
.dashboard_hidden_widgets
.contains(&"errors".to_owned()));
assert!(!prefs
.dashboard_hidden_widgets
.contains(&"requests".to_owned()));
assert!(prefs
.dashboard_hidden_widgets
.contains(&"backend_traffic".to_owned()));
// WWW was absent from the saved document and is introduced only as opt-in.
assert!(prefs
.dashboard_hidden_widgets
.contains(&"www_status".to_owned()));
assert!(validate_admin_preferences(&prefs).is_ok());
}
#[test]
fn explicit_visible_stream_opt_in_is_not_reset_when_normalizing_saved_order() {
let mut prefs = AdminPreferences::default();