test(config): Ensure CLI overrides work

This commit is contained in:
Ed Page committed 2021-04-07 21:14:41 -05:00
1 parent 29fafd1a63
commit 68c0a0d898
3 files changed
+62 -1

No files matched your search

+54 -1
View File
@@ -133,7 +133,6 @@ impl<'s> ConfigEngine<'s> {
let mut types = Default::default();
std::mem::swap(&mut types, &mut config.type_);
let mut types = types
.into_iter()
.map(|(type_, type_engine)| {
@@ -338,3 +337,57 @@ impl<'t, 'd> Default for Policy<'t, 'd> {
}
}
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_load_config_applies_overrides() {
let storage = ConfigStorage::new();
let mut engine = ConfigEngine::new(&storage);
engine.set_isolated(true);
let type_name = kstring::KString::from_static("toml");
let config = crate::config::Config {
default: crate::config::EngineConfig {
binary: Some(true),
check_filename: Some(true),
..Default::default()
},
type_: maplit::hashmap! {
type_name.clone() => crate::config::TypeEngineConfig {
engine: crate::config::EngineConfig {
check_filename: Some(false),
check_file: Some(true),
..Default::default()
},
..Default::default()
},
},
overrides: crate::config::EngineConfig {
binary: Some(false),
check_file: Some(false),
..Default::default()
},
..Default::default()
};
engine.set_overrides(config);
let cwd = std::path::Path::new(".");
let loaded = engine.load_config(&cwd).unwrap();
assert_eq!(loaded.default.binary, Some(false));
assert_eq!(loaded.default.check_filename, Some(true));
assert_eq!(loaded.default.check_file, Some(false));
assert_eq!(loaded.type_[type_name.as_str()].engine.binary, Some(false));
assert_eq!(
loaded.type_[type_name.as_str()].engine.check_filename,
Some(false)
);
assert_eq!(
loaded.type_[type_name.as_str()].engine.check_file,
Some(false)
);
}
}