l3_fn_config 0.0.2-alpha.1

Parsing l3.toml config files
Documentation
use std::collections::HashMap;

use crate::{configs::LambdaEnvConfig, OptionallyParsable};

#[test]
fn test_parse_env_toml_with_env_vars_table_of_strings_and_numbers() {
    let s = r#"
[env_vars]
API_CLIENT_ID=123
API_CLIENT_SECRET="im a secret"
API_ENDPOINT=""
API_ROLLOUT=true
API_ROLLOUT_ROUTING=0.1
"#;
    assert_eq!(
        LambdaEnvConfig::parse(&s.parse::<toml::Table>().unwrap()),
        Ok(LambdaEnvConfig {
            env_files: None,
            env_vars: Some(HashMap::from([
                ("API_CLIENT_ID".into(), "123".into()),
                ("API_CLIENT_SECRET".into(), "im a secret".into()),
                ("API_ENDPOINT".into(), "".into()),
                ("API_ROLLOUT".into(), "true".into()),
                ("API_ROLLOUT_ROUTING".into(), "0.1".into()),
            ]))
        })
    );
}

#[test]
fn test_parse_env_toml_with_env_vars_multiline_string() {
    let s = r#"
env_vars = """
API_CLIENT_ID=123
API_CLIENT_SECRET="im a secret"
API_ENDPOINT=
API_ROLLOUT=true
API_ROLLOUT_ROUTING=0.1
"""
"#;
    assert_eq!(
        LambdaEnvConfig::parse(&s.parse::<toml::Table>().unwrap()),
        Ok(LambdaEnvConfig {
            env_files: None,
            env_vars: Some(HashMap::from([
                ("API_CLIENT_ID".into(), "123".into()),
                ("API_CLIENT_SECRET".into(), "im a secret".into()),
                ("API_ENDPOINT".into(), "".into()),
                ("API_ROLLOUT".into(), "true".into()),
                ("API_ROLLOUT_ROUTING".into(), "0.1".into()),
            ]))
        })
    );
}

#[test]
fn test_parse_env_toml_with_env_vars_array_of_string() {
    let s = r#"
env_vars = [
  "API_CLIENT_ID=123",
  "API_CLIENT_SECRET=im a secret",
  "API_ENDPOINT=",
  "API_ROLLOUT=true",
  "API_ROLLOUT_ROUTING=0.1"
]
"#;
    assert_eq!(
        LambdaEnvConfig::parse(&s.parse::<toml::Table>().unwrap()),
        Ok(LambdaEnvConfig {
            env_files: None,
            env_vars: Some(HashMap::from([
                ("API_CLIENT_ID".into(), "123".into()),
                ("API_CLIENT_SECRET".into(), "im a secret".into()),
                ("API_ENDPOINT".into(), "".into()),
                ("API_ROLLOUT".into(), "true".into()),
                ("API_ROLLOUT_ROUTING".into(), "0.1".into()),
            ]))
        })
    );
}