Skip to content

Commit e8518cf

Browse files
committed
tests(Suggestions): update tests for subcommand suggestions
1 parent 2671ca7 commit e8518cf

File tree

5 files changed

+16
-6
lines changed

5 files changed

+16
-6
lines changed

clap-test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ mod test {
7070
.version("0.1")
7171
.author("Kevin K. <[email protected]>")
7272
.arg_from_usage("-o --option [scoption]... 'tests options'")
73+
.arg_from_usage("-s --subcmdarg [subcmdarg] 'tests other args'")
7374
.arg_from_usage("[scpositional] 'tests positionals'"))
7475
}
7576
}

src/app/parser.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1665,7 +1665,7 @@ impl<'a, 'b> Parser<'a, 'b>
16651665

16661666
// Didn't match a flag or option
16671667
let suffix =
1668-
suggestions::did_you_mean_arg_suffix(arg, longs!(self), &self.subcommands);
1668+
suggestions::did_you_mean_flag_suffix(arg, longs!(self), &self.subcommands);
16691669

16701670
// Add the arg to the matches to build a proper usage string
16711671
if let Some(name) = suffix.1 {

src/suggestions.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,15 +103,13 @@ mod test {
103103
fn suffix_long() {
104104
let p_vals = ["test", "possible", "values"];
105105
let suffix = "\n\tDid you mean \'--test\'?";
106-
assert_eq!(did_you_mean_suffix("tst", p_vals.iter(), DidYouMeanMessageStyle::LongFlag),
107-
(suffix, Some("test")));
106+
assert_eq!(did_you_mean_flag_suffix("tst", p_vals.iter(), []), (suffix, Some("test")));
108107
}
109108

110109
#[test]
111110
fn suffix_enum() {
112111
let p_vals = ["test", "possible", "values"];
113112
let suffix = "\n\tDid you mean \'test\'?";
114-
assert_eq!(did_you_mean_suffix("tst", p_vals.iter(), DidYouMeanMessageStyle::EnumValue),
115-
(suffix, Some("test")));
113+
assert_eq!(did_you_mean_value_suffix("tst", p_vals.iter()), (suffix, Some("test")));
116114
}
117115
}

tests/help.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ FLAGS:
118118
-V, --version Prints version information
119119
120120
OPTIONS:
121-
-o, --option <scoption>... tests options
121+
-o, --option <scoption>... tests options
122+
-s, --subcmdarg <subcmdarg> tests other args
122123
123124
ARGS:
124125
<scpositional> tests positionals";

tests/subcommands.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ USAGE:
4242
4343
For more information try --help";
4444

45+
#[cfg(feature = "suggestions")]
46+
static DYM2: &'static str = "error: Found argument '--subcmdarg' which wasn't expected, or isn't valid in this context
47+
\tDid you mean to put '--subcmdarg' after the subcommand 'subcmdarg'?
48+
49+
USAGE:
50+
clap-test [FLAGS] [OPTIONS] [ARGS] [SUBCOMMAND]
51+
52+
For more information try --help";
53+
4554
#[test]
4655
fn subcommand() {
4756
let m = App::new("test")
@@ -121,6 +130,7 @@ fn multiple_aliases() {
121130
#[cfg(feature="suggestions")]
122131
fn subcmd_did_you_mean_output() {
123132
assert!(test::compare_output(test::complex_app(), "clap-test subcm", DYM, true));
133+
assert!(test::compare_output(test::complex_app(), "clap-test --subcmdarg foo", DYM2, true));
124134
}
125135

126136
#[test]

0 commit comments

Comments
 (0)