| // Copyright 2013-2023 The Cobra Authors | |
| // | |
| // Licensed under the Apache License, Version 2.0 (the "License"); | |
| // you may not use this file except in compliance with the License. | |
| // You may obtain a copy of the License at | |
| // | |
| // http://www.apache.org/licenses/LICENSE-2.0 | |
| // | |
| // Unless required by applicable law or agreed to in writing, software | |
| // distributed under the License is distributed on an "AS IS" BASIS, | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| // See the License for the specific language governing permissions and | |
| // limitations under the License. | |
| package doc | |
| import ( | |
| "strings" | |
| "testing" | |
| "github.com/spf13/cobra" | |
| ) | |
| func emptyRun(*cobra.Command, []string) {} | |
| func init() { | |
| rootCmd.PersistentFlags().StringP("rootflag", "r", "two", "") | |
| rootCmd.PersistentFlags().StringP("strtwo", "t", "two", "help message for parent flag strtwo") | |
| echoCmd.PersistentFlags().StringP("strone", "s", "one", "help message for flag strone") | |
| echoCmd.PersistentFlags().BoolP("persistentbool", "p", false, "help message for flag persistentbool") | |
| echoCmd.Flags().IntP("intone", "i", 123, "help message for flag intone") | |
| echoCmd.Flags().BoolP("boolone", "b", true, "help message for flag boolone") | |
| timesCmd.PersistentFlags().StringP("strtwo", "t", "2", "help message for child flag strtwo") | |
| timesCmd.Flags().IntP("inttwo", "j", 234, "help message for flag inttwo") | |
| timesCmd.Flags().BoolP("booltwo", "c", false, "help message for flag booltwo") | |
| printCmd.PersistentFlags().StringP("strthree", "s", "three", "help message for flag strthree") | |
| printCmd.Flags().IntP("intthree", "i", 345, "help message for flag intthree") | |
| printCmd.Flags().BoolP("boolthree", "b", true, "help message for flag boolthree") | |
| echoCmd.AddCommand(timesCmd, echoSubCmd, deprecatedCmd) | |
| rootCmd.AddCommand(printCmd, echoCmd, dummyCmd) | |
| } | |
| var rootCmd = &cobra.Command{ | |
| Use: "root", | |
| Short: "Root short description", | |
| Long: "Root long description", | |
| Run: emptyRun, | |
| } | |
| var echoCmd = &cobra.Command{ | |
| Use: "echo [string to echo]", | |
| Aliases: []string{"say"}, | |
| Short: "Echo anything to the screen", | |
| Long: "an utterly useless command for testing", | |
| Example: "Just run cobra-test echo", | |
| } | |
| var echoSubCmd = &cobra.Command{ | |
| Use: "echosub [string to print]", | |
| Short: "second sub command for echo", | |
| Long: "an absolutely utterly useless command for testing gendocs!.", | |
| Run: emptyRun, | |
| } | |
| var timesCmd = &cobra.Command{ | |
| Use: "times [# times] [string to echo]", | |
| SuggestFor: []string{"counts"}, | |
| Short: "Echo anything to the screen more times", | |
| Long: `a slightly useless command for testing.`, | |
| Run: emptyRun, | |
| } | |
| var deprecatedCmd = &cobra.Command{ | |
| Use: "deprecated [can't do anything here]", | |
| Short: "A command which is deprecated", | |
| Long: `an absolutely utterly useless command for testing deprecation!.`, | |
| Deprecated: "Please use echo instead", | |
| } | |
| var printCmd = &cobra.Command{ | |
| Use: "print [string to print]", | |
| Short: "Print anything to the screen", | |
| Long: `an absolutely utterly useless command for testing.`, | |
| } | |
| var dummyCmd = &cobra.Command{ | |
| Use: "dummy [action]", | |
| Short: "Performs a dummy action", | |
| } | |
| func checkStringContains(t *testing.T, got, expected string) { | |
| if !strings.Contains(got, expected) { | |
| t.Errorf("Expected to contain: \n %v\nGot:\n %v\n", expected, got) | |
| } | |
| } | |
| func checkStringOmits(t *testing.T, got, expected string) { | |
| if strings.Contains(got, expected) { | |
| t.Errorf("Expected to not contain: \n %v\nGot: %v", expected, got) | |
| } | |
| } |