MCPcopy
hub / github.com/spf13/cobra / TestBashCompletions

Function TestBashCompletions

bash_completions_test.go:83–227  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

81`
82
83func TestBashCompletions(t *testing.T) {
84 rootCmd := &Command{
85 Use: "root",
86 ArgAliases: []string{"pods", "nodes", "services", "replicationcontrollers", "po", "no", "svc", "rc"},
87 ValidArgs: []string{"pod", "node", "service", "replicationcontroller"},
88 BashCompletionFunction: bashCompletionFunc,
89 Run: emptyRun,
90 }
91 rootCmd.Flags().IntP("introot", "i", -1, "help message for flag introot")
92 assertNoErr(t, rootCmd.MarkFlagRequired("introot"))
93
94 // Filename.
95 rootCmd.Flags().String("filename", "", "Enter a filename")
96 assertNoErr(t, rootCmd.MarkFlagFilename("filename", "json", "yaml", "yml"))
97
98 // Persistent filename.
99 rootCmd.PersistentFlags().String("persistent-filename", "", "Enter a filename")
100 assertNoErr(t, rootCmd.MarkPersistentFlagFilename("persistent-filename"))
101 assertNoErr(t, rootCmd.MarkPersistentFlagRequired("persistent-filename"))
102
103 // Filename extensions.
104 rootCmd.Flags().String("filename-ext", "", "Enter a filename (extension limited)")
105 assertNoErr(t, rootCmd.MarkFlagFilename("filename-ext"))
106 rootCmd.Flags().String("custom", "", "Enter a filename (extension limited)")
107 assertNoErr(t, rootCmd.MarkFlagCustom("custom", "__complete_custom"))
108
109 // Subdirectories in a given directory.
110 rootCmd.Flags().String("theme", "", "theme to use (located in /themes/THEMENAME/)")
111 assertNoErr(t, rootCmd.Flags().SetAnnotation("theme", BashCompSubdirsInDir, []string{"themes"}))
112
113 // For two word flags check
114 rootCmd.Flags().StringP("two", "t", "", "this is two word flags")
115 rootCmd.Flags().BoolP("two-w-default", "T", false, "this is not two word flags")
116
117 echoCmd := &Command{
118 Use: "echo [string to echo]",
119 Aliases: []string{"say"},
120 Short: "Echo anything to the screen",
121 Long: "an utterly useless command for testing.",
122 Example: "Just run cobra-test echo",
123 Run: emptyRun,
124 }
125
126 echoCmd.Flags().String("filename", "", "Enter a filename")
127 assertNoErr(t, echoCmd.MarkFlagFilename("filename", "json", "yaml", "yml"))
128 echoCmd.Flags().String("config", "", "config to use (located in /config/PROFILE/)")
129 assertNoErr(t, echoCmd.Flags().SetAnnotation("config", BashCompSubdirsInDir, []string{"config"}))
130
131 printCmd := &Command{
132 Use: "print [string to print]",
133 Args: MinimumNArgs(1),
134 Short: "Print anything to the screen",
135 Long: "an absolutely utterly useless command for testing.",
136 Run: emptyRun,
137 }
138
139 deprecatedCmd := &Command{
140 Use: "deprecated [can't do anything here]",

Callers

nothing calls this directly

Calls 15

FlagsMethod · 0.95
MarkFlagRequiredMethod · 0.95
MarkFlagFilenameMethod · 0.95
PersistentFlagsMethod · 0.95
MarkFlagCustomMethod · 0.95
AddCommandMethod · 0.95
GenBashCompletionMethod · 0.95
NameMethod · 0.95
MinimumNArgsFunction · 0.85
checkFunction · 0.85

Tested by

no test coverage detected