use std::{path::PathBuf, process::Command}; #[test] fn contract_check_is_independent_of_current_working_directory() { let directory = std::env::temp_dir().join(format!("crank-metrics-contract-{}", std::process::id())); std::fs::create_dir_all(&directory).unwrap(); let output = Command::new(env!("CARGO_BIN_EXE_crank-metrics-contract")) .arg("--check") .current_dir(&directory) .output() .unwrap(); std::fs::remove_dir_all(&directory).ok(); assert!( output.status.success(), "{}", String::from_utf8_lossy(&output.stderr) ); assert!(String::from_utf8_lossy(&output.stdout).contains("metrics_contract_ok")); } #[test] fn snapshot_path_is_resolved_from_the_crate_manifest() { let path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) .join("../../docs/schemas/metrics-registry-v1.json"); assert!(path.is_file()); }