#[cfg(test)] mod tests { #[test] fn dockerfile_is_multi_stage_and_builds_selected_binary() { let raw = std::fs::read_to_string("../docker/Dockerfile.rust").unwrap(); assert!(raw.contains("AS builder")); assert!(raw.contains("FROM debian:")); assert!(raw.contains("ARG PACKAGE")); assert!(raw.contains("ARG BIN")); assert!(raw.contains("cargo build -p ${PACKAGE} --bin ${BIN} --release")); assert!(raw.contains("COPY --from=builder")); assert!(raw.contains("ENTRYPOINT")); assert!(raw.contains("FROM")); } #[test] fn docker_compose_is_valid_yaml_and_has_services() { let raw = std::fs::read_to_string("../docker-compose.yml").unwrap(); let doc: serde_yaml::Value = serde_yaml::from_str(&raw).unwrap(); let services = doc.get("services").and_then(|v| v.as_mapping()).unwrap(); assert!(services.contains_key(serde_yaml::Value::from("nats"))); assert!(services.contains_key(serde_yaml::Value::from("aggregate"))); } }