vkteams-bot-cli 0.7.6

High-performance VK Teams Bot API toolkit with CLI and MCP server support
Documentation
use assert_cmd::Command;

#[test]
fn test_cli_help() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.arg("--help");
    cmd.assert().success().stdout(predicates::str::contains(
        "A powerful command-line interface for interacting with VK Teams Bot API",
    ));
}

#[test]
fn test_cli_version() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.arg("--version");
    cmd.assert()
        .success()
        .stdout(predicates::str::contains("vkteams-bot-cli"));
}

#[test]
fn test_cli_invalid_command() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.arg("no-such-command");
    cmd.assert()
        .failure()
        .stderr(predicates::str::contains("error"));
}

#[test]
fn test_cli_rate_limit_test_invalid_requests() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.args(["rate-limit-test", "--requests", "0"]);
    cmd.assert().failure().stderr(predicates::str::contains(
        "Number of requests must be between 1 and 1000",
    ));
}

#[test]
fn test_cli_config_show() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.args(["config", "--show"]);
    cmd.assert()
        .success()
        .stdout(predicates::str::contains("Success"));
}

#[test]
fn test_cli_completion_stdout() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.args(["completion", "zsh"]);
    cmd.assert()
        .success()
        .stdout(predicates::str::contains("Success"));
}

#[test]
fn test_cli_validate() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.arg("validate");
    cmd.assert()
        .success()
        .stdout(predicates::str::contains("Success"));
}

#[test]
fn test_cli_list_commands() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.arg("list-commands");
    cmd.assert()
        .success()
        .stdout(predicates::str::contains("Success"));
}

#[test]
fn test_cli_config_init() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.args(["config", "--init"]);
    cmd.assert()
        .success()
        .stdout(predicates::str::contains("Success"));
}

#[test]
fn test_cli_config_wizard() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.args(["config", "--wizard"]);
    cmd.assert().success().stdout(predicates::str::contains(
        "Configuration updated successfully",
    ));
}

#[test]
fn test_cli_setup() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.arg("setup");
    cmd.assert()
        .success()
        .stdout(predicates::str::contains("Setup complete"));
}

#[test]
fn test_cli_examples() {
    let mut cmd = Command::cargo_bin("vkteams-bot-cli").unwrap();
    cmd.arg("examples");
    cmd.assert()
        .success()
        .stdout(predicates::str::contains("Success"));
}