use assert_cmd::Command;
use predicates::str::contains;
#[test]
fn test_main_save_config_error() {
let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
cmd.arg("--save-config")
.arg("/nonexistent_dir/out.toml")
.arg("config");
cmd.assert()
.failure()
.stderr(contains("Failed to save configuration"));
}
#[test]
fn test_main_command_validation_error() {
let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
cmd.arg("not-a-command");
cmd.assert()
.failure()
.stderr(contains("unrecognized subcommand"));
}
#[test]
fn test_main_command_execution_error() {
let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
cmd.arg("send-text")
.arg("-u")
.arg("user123")
.arg("-m")
.arg("hi");
cmd.env_remove("VKTEAMS_BOT_API_TOKEN");
cmd.env_remove("VKTEAMS_BOT_API_URL");
cmd.assert().failure().stderr(contains("Error:"));
}