use std::process::Command; #[test] fn test_cli_version() { let output = Command::new("cargo") .args(["run", "--", "--version"]) .current_dir("..") .output() .expect("Failed to run cargo"); assert!(output.status.success()); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("dotmigrate")); } #[test] fn test_cli_help() { let output = Command::new("cargo") .args(["run", "--", "--help"]) .current_dir("..") .output() .expect("Failed to run cargo"); assert!(output.status.success()); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("USAGE:")); } #[test] fn test_cli_detect_command_exists() { let output = Command::new("cargo") .args(["run", "--", "detect", "--help"]) .current_dir("..") .output() .expect("Failed to run cargo"); assert!(output.status.success()); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("--output") || stdout.contains("--include-system")); } #[test] fn test_cli_backup_command_exists() { let output = Command::new("cargo") .args(["run", "--", "backup", "--help"]) .current_dir("..") .output() .expect("Failed to run cargo"); assert!(output.status.success()); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("--output") || stdout.contains("--backup-dir")); } #[test] fn test_cli_sync_command_exists() { let output = Command::new("cargo") .args(["run", "--", "sync", "--help"]) .current_dir("..") .output() .expect("Failed to run cargo"); assert!(output.status.success()); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("--remote") || stdout.contains("--branch")); } #[test] fn test_cli_merge_command_exists() { let output = Command::new("cargo") .args(["run", "--", "merge", "--help"]) .current_dir("..") .output() .expect("Failed to run cargo"); assert!(output.status.success()); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("--base") || stdout.contains("--local")); } #[test] fn test_cli_status_command_exists() { let output = Command::new("cargo") .args(["run", "--", "status", "--help"]) .current_dir("..") .output() .expect("Failed to run cargo"); assert!(output.status.success()); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("--detailed")); } #[test] fn test_cli_completions_command_exists() { let output = Command::new("cargo") .args(["run", "--", "completions", "--help"]) .current_dir("..") .output() .expect("Failed to run cargo"); assert!(output.status.success()); let stdout = String::from_utf8_lossy(&output.stdout); assert!(stdout.contains("SHELL")); }