use workshop_baker::prebake::parse; use workshop_baker::prebake::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()); }