8fd807f174
crate BREAKING CHANGE: Moved engine/ module (cgroups, executor, pm, upm, types) and shared types (command, repology, time) from workshop-baker to new workshop-engine crate. All internal error types consolidated into workshop-engine::error. Import paths changed throughout codebase.
80 lines
1.7 KiB
Rust
80 lines
1.7 KiB
Rust
use workshop_baker::prebake::parse;
|
|
use workshop_baker::types::builderconfig::BuilderType;
|
|
|
|
#[test]
|
|
fn test_prebake_config_minimal_yaml() {
|
|
let yaml = r#"
|
|
version: "1.0"
|
|
environment:
|
|
builder: docker
|
|
"#;
|
|
let config = parse(yaml).unwrap();
|
|
assert_eq!(config.version, "1.0");
|
|
assert_eq!(config.environment.builder, BuilderType::Docker);
|
|
}
|
|
|
|
#[test]
|
|
fn test_prebake_config_with_builder_type_baremetal() {
|
|
let yaml = r#"
|
|
version: "1.0"
|
|
environment:
|
|
builder: baremetal
|
|
"#;
|
|
let config = parse(yaml).unwrap();
|
|
assert_eq!(config.environment.builder, BuilderType::Baremetal);
|
|
}
|
|
|
|
#[test]
|
|
fn test_prebake_config_with_envvars() {
|
|
let yaml = r#"
|
|
version: "1.0"
|
|
environment:
|
|
builder: baremetal
|
|
envvars:
|
|
prebake:
|
|
RUST_LOG: debug
|
|
"#;
|
|
let config = parse(yaml).unwrap();
|
|
assert_eq!(config.environment.builder, BuilderType::Baremetal);
|
|
let prebake_vars = config.envvars.unwrap().prebake.unwrap();
|
|
assert_eq!(prebake_vars.get("RUST_LOG").unwrap(), "debug");
|
|
}
|
|
|
|
#[test]
|
|
fn test_prebake_config_with_bootstrap_workspace() {
|
|
let yaml = r#"
|
|
version: "1.0"
|
|
environment:
|
|
builder: docker
|
|
bootstrap:
|
|
workspace:
|
|
path: "/workspace"
|
|
"#;
|
|
let config = parse(yaml).unwrap();
|
|
let bootstrap = config.bootstrap.unwrap();
|
|
let workspace = bootstrap.workspace.unwrap();
|
|
assert_eq!(workspace.path, "/workspace");
|
|
}
|
|
|
|
#[test]
|
|
fn test_prebake_config_validation_passes() {
|
|
let yaml = r#"
|
|
version: "1.0"
|
|
environment:
|
|
builder: docker
|
|
"#;
|
|
let config = parse(yaml).unwrap();
|
|
assert!(config.validate().is_ok());
|
|
}
|
|
|
|
#[test]
|
|
fn test_prebake_config_validation_fails_bad_version() {
|
|
let yaml = r#"
|
|
version: "99.0"
|
|
environment:
|
|
builder: docker
|
|
"#;
|
|
let config = parse(yaml).unwrap();
|
|
assert!(config.validate().is_err());
|
|
}
|