From 520be0680ad6216e6560aab7958bff477911b991 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Wed, 4 Feb 2026 09:53:08 +0000 Subject: [PATCH] Initial upload: DotMigrate dotfiles migration tool with CI/CD --- tests/integration/cli_tests.rs | 105 +++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 tests/integration/cli_tests.rs diff --git a/tests/integration/cli_tests.rs b/tests/integration/cli_tests.rs new file mode 100644 index 0000000..b49d7fe --- /dev/null +++ b/tests/integration/cli_tests.rs @@ -0,0 +1,105 @@ +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")); +}