Guess it's working now somehow
This commit is contained in:
parent
c935d725aa
commit
427afa921d
|
@ -25,9 +25,6 @@ pub struct Config {
|
|||
pub version: u64,
|
||||
pub discord: Option<Discord>,
|
||||
pub open_ai: Option<OpenAI>,
|
||||
|
||||
#[serde(serialize_with = "redact_secret")]
|
||||
pub secret: Secret<String>,
|
||||
}
|
||||
|
||||
impl Config {
|
||||
|
@ -48,10 +45,10 @@ impl Config {
|
|||
Ok(CConfig::builder()
|
||||
.set_default("version", CURRENT_VERSION)?
|
||||
.set_default("discord", Option::<HashMap<String, config::Value>>::None)?
|
||||
.set_default("open_ai", Option::<HashMap<String, config::Value>>::None)?
|
||||
.set_default("secret", "this is a secret!")?)
|
||||
.set_default("open_ai", Option::<HashMap<String, config::Value>>::None)?)
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn defaults() -> Result<Self> {
|
||||
let c = Self::default_builder()?.build()?;
|
||||
Ok(c.try_deserialize()?)
|
||||
|
@ -60,17 +57,33 @@ impl Config {
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::prelude::*;
|
||||
use crate::config::*;
|
||||
|
||||
#[test]
|
||||
fn defaults_deserialize_to_valid_config() -> Result<()> {
|
||||
println!("Defaults: {:?}", Config::defaults()?);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn config_does_not_leak_secrets() -> Result<()> {
|
||||
let defaults = Config::default_builder()?
|
||||
.set_override("discord.bot_token", Secret::new("THIS_IS_MY_BOT_TOKEN"))?
|
||||
.build()?;
|
||||
let s = format!("{defaults:?}");
|
||||
let conf: Config = match Config::default_builder()?
|
||||
// .set_override("discord", HashMap::<String, config::Value>::new())?
|
||||
.set_override("discord.bot_token", "THIS_IS_MY_BOT_TOKEN")?
|
||||
.set_override("version", 1337)?
|
||||
.build()?
|
||||
.try_deserialize()
|
||||
{
|
||||
Ok(conf) => conf,
|
||||
Err(err) => {
|
||||
println!("{err:#?}");
|
||||
return Err(err.into());
|
||||
}
|
||||
};
|
||||
let s = format!("{conf:?}");
|
||||
println!("{s}");
|
||||
assert!(s.contains("1337"));
|
||||
assert!(!s.contains("THIS_IS_MY_BOT_TOKEN"));
|
||||
assert!(!s.contains("this is a secret"));
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue