use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default, deny_unknown_fields)]
pub struct MetricsConfig {
pub filter_duration: bool,
}
#[cfg(test)]
#[expect(clippy::allow_attributes, reason = "blanket test suppressions")]
#[allow(clippy::unwrap_used, clippy::expect_used, clippy::indexing_slicing, reason = "tests")]
mod tests {
use super::*;
#[test]
fn defaults_filter_duration_off() {
let metrics = MetricsConfig::default();
assert!(!metrics.filter_duration, "filter_duration should default to false");
}
#[test]
fn parse_empty_yields_defaults() {
let metrics: MetricsConfig = serde_yaml::from_str("{}").unwrap();
assert!(
!metrics.filter_duration,
"empty yaml should default filter_duration to false"
);
}
#[test]
fn parse_explicit_filter_duration() {
let metrics: MetricsConfig = serde_yaml::from_str("filter_duration: true").unwrap();
assert!(metrics.filter_duration, "explicit filter_duration should be true");
}
}