mirror of
https://github.com/clap-rs/clap
synced 2024-12-14 14:52:33 +00:00
146 lines
3.3 KiB
Rust
146 lines
3.3 KiB
Rust
use crate::common;
|
|
|
|
#[test]
|
|
fn basic() {
|
|
let name = "my-app";
|
|
let cmd = common::basic_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/basic.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn feature_sample() {
|
|
let name = "my-app";
|
|
let cmd = common::feature_sample_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/feature_sample.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn special_commands() {
|
|
let name = "my-app";
|
|
let cmd = common::special_commands_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/special_commands.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn quoting() {
|
|
let name = "my-app";
|
|
let cmd = common::quoting_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/quoting.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn aliases() {
|
|
let name = "my-app";
|
|
let cmd = common::aliases_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/aliases.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn sub_subcommands() {
|
|
let name = "my-app";
|
|
let cmd = common::sub_subcommands_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/sub_subcommands.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn value_hint() {
|
|
let name = "my-app";
|
|
let cmd = common::value_hint_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/value_hint.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn value_terminator() {
|
|
let name = "my-app";
|
|
let cmd = common::value_terminator_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/value_terminator.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn two_multi_valued_arguments() {
|
|
let name = "my-app";
|
|
let cmd = common::two_multi_valued_arguments_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/two_multi_valued_arguments.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn subcommand_last() {
|
|
let name = "my-app";
|
|
let cmd = common::subcommand_last(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/subcommand_last.zsh",
|
|
clap_complete::shells::Zsh,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
#[cfg(unix)]
|
|
fn register_completion() {
|
|
common::register_example("static", "exhaustive", completest::Shell::Zsh);
|
|
}
|
|
|
|
#[test]
|
|
#[cfg(unix)]
|
|
fn complete() {
|
|
if !common::has_command("zsh") {
|
|
return;
|
|
}
|
|
|
|
let term = completest::Term::new();
|
|
let mut runtime = common::load_runtime("static", "exhaustive", completest::Shell::Zsh);
|
|
|
|
let input = "exhaustive \t";
|
|
let expected = r#"% exhaustive
|
|
complete -- Register shell completions for this program
|
|
help -- Print this message or the help of the given subcommand(s)
|
|
pacman action alias value quote hint last --"#;
|
|
let actual = runtime.complete(input, &term).unwrap();
|
|
snapbox::assert_eq(expected, actual);
|
|
}
|