Add wildcard bind acceptance/rejection tests for ConfigReloadHandle reload
Tests verify that reload accepts 0.0.0.0 bind when cli_allow_wildcard_bind is true and rejects it when false.
This commit is contained in:
@@ -474,4 +474,34 @@ mod tests {
|
|||||||
assert!(config.routing_table.contains_key("my.site"));
|
assert!(config.routing_table.contains_key("my.site"));
|
||||||
assert_eq!(config.routing_table.len(), 1);
|
assert_eq!(config.routing_table.len(), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn reload_accepts_wildcard_bind_when_flag_true() {
|
||||||
|
let initial = test_fixtures::test_dynamic_config();
|
||||||
|
let config_arc = Arc::new(ArcSwap::from_pointee(initial.clone()));
|
||||||
|
let mut static_config = test_fixtures::test_static_config();
|
||||||
|
static_config.listeners[0].bind_addr = "0.0.0.0".to_string();
|
||||||
|
static_config.allow_wildcard_bind = false;
|
||||||
|
let handle = ConfigReloadHandle::new(config_arc.clone(), static_config.clone(), true);
|
||||||
|
|
||||||
|
let rt = tokio::runtime::Runtime::new().unwrap();
|
||||||
|
let result = rt.block_on(handle.reload(static_config, initial));
|
||||||
|
assert!(result.is_ok());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn reload_rejects_wildcard_bind_when_flag_false() {
|
||||||
|
let initial = test_fixtures::test_dynamic_config();
|
||||||
|
let config_arc = Arc::new(ArcSwap::from_pointee(initial.clone()));
|
||||||
|
let mut static_config = test_fixtures::test_static_config();
|
||||||
|
static_config.listeners[0].bind_addr = "0.0.0.0".to_string();
|
||||||
|
static_config.allow_wildcard_bind = false;
|
||||||
|
let handle = ConfigReloadHandle::new(config_arc.clone(), static_config.clone(), false);
|
||||||
|
|
||||||
|
let rt = tokio::runtime::Runtime::new().unwrap();
|
||||||
|
let result = rt.block_on(handle.reload(static_config, initial));
|
||||||
|
assert!(result.is_err());
|
||||||
|
let err_msg = result.unwrap_err().to_string();
|
||||||
|
assert!(err_msg.contains("0.0.0.0"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user