use serde::Deserialize;
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(default)]
pub struct BodyLimitsConfig {
pub max_request_bytes: Option<usize>,
pub max_response_bytes: Option<usize>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn defaults_are_none() {
let limits = BodyLimitsConfig::default();
assert!(
limits.max_request_bytes.is_none(),
"max_request_bytes should default to None"
);
assert!(
limits.max_response_bytes.is_none(),
"max_response_bytes should default to None"
);
}
#[test]
fn parse_full_config() {
let limits: BodyLimitsConfig = serde_yaml::from_str(
r#"
max_request_bytes: 1048576
max_response_bytes: 524288
"#,
)
.unwrap();
assert_eq!(
limits.max_request_bytes,
Some(1_048_576),
"max_request_bytes should be parsed"
);
assert_eq!(
limits.max_response_bytes,
Some(524_288),
"max_response_bytes should be parsed"
);
}
#[test]
fn parse_empty_yields_defaults() {
let limits: BodyLimitsConfig = serde_yaml::from_str("{}").unwrap();
assert!(
limits.max_request_bytes.is_none(),
"max_request_bytes should default to None"
);
assert!(
limits.max_response_bytes.is_none(),
"max_response_bytes should default to None"
);
}
}