//! Integration tests for output format //! Tests require real Ghidra installation use assert_cmd::Command; /// Helper to verify Ghidra is installed before running tests fn require_ghidra() { let output = Command::cargo_bin("ghidra") .unwrap() .arg("doctor") .output() .expect("Failed to run ghidra doctor"); if !output.status.success() { panic!("Ghidra is not installed. Tests require Ghidra installation per AGENTS.md"); } } #[test] fn test_format_detection_tty() { require_ghidra(); // Test that --help shows both --json and --pretty flags let mut cmd = Command::cargo_bin("ghidra").unwrap(); cmd.arg("--help"); cmd.assert().success(); let output = cmd.output().unwrap(); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("--json"), "Help should show --json flag"); assert!( stdout.contains("--pretty"), "Help should show --pretty flag" ); } #[test] fn test_json_flag() { require_ghidra(); // Test --json flag is recognized let mut cmd = Command::cargo_bin("ghidra").unwrap(); cmd.arg("--json").arg("--help"); cmd.assert().success(); } #[test] fn test_pretty_flag() { require_ghidra(); // Test --pretty flag is recognized let mut cmd = Command::cargo_bin("ghidra").unwrap(); cmd.arg("--pretty").arg("--help"); cmd.assert().success(); }