mirror of
https://github.com/clap-rs/clap
synced 2024-12-15 07:12:32 +00:00
58b0c504d8
Emit the user-defined value terminator into the zsh completion pattern to avoid doubled rest-arguments definitions: $ my-app <TAB> _arguments:comparguments:325: doubled rest argument definition: *::second -- second set of of multi-length arguments: https://github.com/clap-rs/clap/issues/3266#issuecomment-1007901407 noted that including the value terminator is one step towards a robust solution for handling multiple multi-valued arguments. This change does not yet handle automatically detecting when a value terminator is needed, but it does add tests to ensure that user-specified value terminators are used on zsh. Related-to: #3022 Signed-off-by: David Aguilar <davvid@gmail.com>
97 lines
2 KiB
Rust
97 lines
2 KiB
Rust
mod common;
|
|
|
|
#[test]
|
|
fn basic() {
|
|
let name = "my-app";
|
|
let cmd = common::basic_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/basic.fish",
|
|
clap_complete::shells::Fish,
|
|
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.fish",
|
|
clap_complete::shells::Fish,
|
|
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.fish",
|
|
clap_complete::shells::Fish,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn quoting() {
|
|
let name = "my-app";
|
|
let cmd = common::quoting_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/quoting.fish",
|
|
clap_complete::shells::Fish,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn aliases() {
|
|
let name = "my-app";
|
|
let cmd = common::aliases_command(name);
|
|
common::assert_matches_path(
|
|
"tests/snapshots/aliases.fish",
|
|
clap_complete::shells::Fish,
|
|
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.fish",
|
|
clap_complete::shells::Fish,
|
|
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.fish",
|
|
clap_complete::shells::Fish,
|
|
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.fish",
|
|
clap_complete::shells::Fish,
|
|
cmd,
|
|
name,
|
|
);
|
|
}
|