use cirious_codex_config::ConfigBuilder;
use serde::Deserialize;
use std::env;
#[derive(Debug, Deserialize)]
struct Database {
url: String,
port: u16,
}
#[derive(Debug, Deserialize)]
struct Config {
database: Database,
}
#[test]
fn test_nested_env_vars() {
env::set_var("APP_DATABASE__URL", "postgres://localhost:5432");
env::set_var("APP_DATABASE__PORT", "5432");
let config_result = ConfigBuilder::new().add_env_nested("APP_", "__").build::<Config>();
if let Ok(config) = config_result {
let config = config.value;
assert_eq!(config.database.url, "postgres://localhost:5432");
assert_eq!(config.database.port, 5432);
}
env::remove_var("APP_DATABASE__URL");
env::remove_var("APP_DATABASE__PORT");
}