Files
k-mood/crates/config/tests/loader/rejection_test.rs
Gabriel Kaszewski 23d052278a
All checks were successful
CI / ci (push) Successful in 19m38s
changes
2026-08-26 20:58:14 +02:00

48 lines
1.0 KiB
Rust

use figment::Jail;
use config::load;
const CONFIG_FILE: &str = "config.toml";
#[test]
fn a_malformed_file_is_refused_rather_than_ignored() {
Jail::expect_with(|jail| {
jail.create_file(CONFIG_FILE, "[server\nport = ")?;
assert!(load().is_err());
Ok(())
});
}
#[test]
fn a_value_of_the_wrong_type_is_refused() {
Jail::expect_with(|jail| {
jail.set_env("KMOOD_SERVER__PORT", "not-a-port");
assert!(load().is_err());
Ok(())
});
}
#[test]
fn a_refusal_names_the_key_at_fault() {
Jail::expect_with(|jail| {
jail.set_env("KMOOD_SERVER__PORT", "not-a-port");
let message = load().unwrap_err().to_string().to_lowercase();
assert!(message.contains("port"), "unhelpful message: {message}");
Ok(())
});
}
#[test]
fn a_named_file_that_is_missing_is_refused_rather_than_ignored() {
Jail::expect_with(|jail| {
jail.set_env("KMOOD_CONFIG_FILE", "nowhere.toml");
assert!(load().is_err());
Ok(())
});
}