Don't display deprecated flags in bash completions

This commit is contained in:
Euan Kemp
2016-08-02 15:01:33 -07:00
parent 75daccd5b8
commit 40e19b3f3b
2 changed files with 27 additions and 3 deletions

View File

@ -158,3 +158,23 @@ func TestBashCompletionHiddenFlag(t *testing.T) {
t.Error("expected completion to not include %q flag: Got %v", flagName, bashCompletion)
}
}
func TestBashCompletionDeprecatedFlag(t *testing.T) {
var cmdTrue = &Command{
Use: "does nothing",
Run: func(cmd *Command, args []string) {},
}
const flagName = "deprecated-foo-bar-baz"
var flagValue bool
cmdTrue.Flags().BoolVar(&flagValue, flagName, false, "hidden flag")
cmdTrue.Flags().MarkDeprecated(flagName, "use --does-not-exist instead")
out := new(bytes.Buffer)
cmdTrue.GenBashCompletion(out)
bashCompletion := out.String()
if strings.Contains(bashCompletion, flagName) {
t.Errorf("expected completion to not include %q flag: Got %v", flagName, bashCompletion)
}
}