Files
QuiCommit/tests/integration_tests.rs

65 lines
1.6 KiB
Rust

use assert_cmd::Command;
use predicates::prelude::*;
use std::fs;
use tempfile::TempDir;
#[test]
fn test_cli_help() {
let mut cmd = Command::cargo_bin("quicommit").unwrap();
cmd.arg("--help");
cmd.assert()
.success()
.stdout(predicate::str::contains("QuiCommit"));
}
#[test]
fn test_version() {
let mut cmd = Command::cargo_bin("quicommit").unwrap();
cmd.arg("--version");
cmd.assert()
.success()
.stdout(predicate::str::contains("0.1.0"));
}
#[test]
fn test_config_show() {
let temp_dir = TempDir::new().unwrap();
let config_dir = temp_dir.path().join("config");
fs::create_dir(&config_dir).unwrap();
let mut cmd = Command::cargo_bin("quicommit").unwrap();
cmd.env("QUICOMMIT_CONFIG", config_dir.join("config.toml"))
.arg("config")
.arg("show");
cmd.assert().success();
}
#[test]
fn test_profile_list_empty() {
let temp_dir = TempDir::new().unwrap();
let mut cmd = Command::cargo_bin("quicommit").unwrap();
cmd.env("QUICOMMIT_CONFIG", temp_dir.path().join("config.toml"))
.arg("profile")
.arg("list");
cmd.assert()
.success()
.stdout(predicate::str::contains("No profiles configured"));
}
#[test]
fn test_init_quick() {
let temp_dir = TempDir::new().unwrap();
let mut cmd = Command::cargo_bin("quicommit").unwrap();
cmd.env("QUICOMMIT_CONFIG", temp_dir.path().join("config.toml"))
.arg("init")
.arg("--yes");
cmd.assert()
.success()
.stdout(predicate::str::contains("initialized successfully"));
}