cuddle-clusters/crates/cuddle-clusters/tests/cuddle_vars.rs
kjuulh bbe630e822
feat: add variables
Signed-off-by: kjuulh <contact@kjuulh.io>
2024-05-20 23:05:20 +02:00

50 lines
1.9 KiB
Rust

use std::collections::HashMap;
use cuddle_clusters::catalog::cuddle_vars::{CuddleVariable, CuddleVariables, CuddleVars};
use similar_asserts::assert_eq;
#[tokio::test]
async fn can_load_cuddle_file() -> anyhow::Result<()> {
let current_dir = std::env::current_dir()?.join("tests");
let vars = CuddleVars::new(&current_dir.join("cuddle_vars/basic/")).await?;
assert_eq!(
CuddleVars {
variables: CuddleVariables(HashMap::from([
("service".into(), CuddleVariable::String("basic".into())),
(
"some".into(),
CuddleVariable::Object(Box::new(CuddleVariables(HashMap::from([
("other".into(), CuddleVariable::String("item".into())),
(
"nested".into(),
CuddleVariable::Object(Box::new(CuddleVariables(HashMap::from([(
"item".into(),
CuddleVariable::String("item".into())
)]))))
),
(
"array".into(),
CuddleVariable::Array(vec![CuddleVariable::Object(Box::new(
CuddleVariables(HashMap::from([(
"item".into(),
CuddleVariable::Object(Box::new(CuddleVariables(
HashMap::from([(
"item".into(),
CuddleVariable::String("item".into()),
)])
)))
)]))
))])
)
]))))
)
]))
},
vars
);
Ok(())
}