(t *testing.T)
| 81 | ` |
| 82 | |
| 83 | func 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]", |
nothing calls this directly
no test coverage detected