25 lines
1.0 KiB
Rust
25 lines
1.0 KiB
Rust
#[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")));
|
|
}
|
|
}
|