use rustcodegraph::mcp::engine::parse_debounce_env;
mod parse_debounce_env {
use super::*;
#[test]
fn returns_undefined_for_unset_empty_values() {
assert_eq!(parse_debounce_env(None), None);
assert_eq!(parse_debounce_env(Some("")), None);
assert_eq!(parse_debounce_env(Some(" ")), None);
}
#[test]
fn accepts_integer_values_inside_100_60000() {
assert_eq!(parse_debounce_env(Some("100")), Some(100));
assert_eq!(parse_debounce_env(Some("2000")), Some(2000));
assert_eq!(parse_debounce_env(Some("5000")), Some(5000));
assert_eq!(parse_debounce_env(Some("60000")), Some(60000));
}
#[test]
fn rejects_out_of_range_values_returns_undefined_lets_default_win() {
assert_eq!(parse_debounce_env(Some("0")), None);
assert_eq!(parse_debounce_env(Some("50")), None); assert_eq!(parse_debounce_env(Some("99")), None);
assert_eq!(parse_debounce_env(Some("60001")), None); assert_eq!(parse_debounce_env(Some("-500")), None);
}
#[test]
fn rejects_non_integer_non_numeric_values() {
assert_eq!(parse_debounce_env(Some("abc")), None);
assert_eq!(parse_debounce_env(Some("500.5")), None);
assert_eq!(parse_debounce_env(Some("NaN")), None);
assert_eq!(parse_debounce_env(Some("Infinity")), None);
}
#[test]
fn accepts_scientific_notation_that_resolves_to_an_in_range_integer() {
assert_eq!(parse_debounce_env(Some("1e3")), Some(1000));
}
}