use std::process::Command; #[test] fn help_describes_the_controller_commands_without_contacting_services() { let output = Command::new(binary()).arg("--help").output().unwrap(); assert!(output.status.success()); let text = String::from_utf8(output.stdout).unwrap(); for command in [ "subscription", "configuration", "enable", "disable", "status", "recover", ] { assert!(text.contains(command), "Missing command {command}: {text}"); } } #[test] fn subscription_url_cannot_be_passed_on_the_command_line() { let output = Command::new(binary()) .args(["subscription", "add", "https://secret.example/token"]) .output() .unwrap(); assert!(!output.status.success()); } fn binary() -> String { std::env::var("ROENTGEN_TEST_BINARY").unwrap_or_else(|_| env!("CARGO_BIN_EXE_roentgen").into()) }