mirror of
https://github.com/spf13/cobra
synced 2024-11-04 21:07:19 +00:00
edcf765d9f
We previously had this weak argument called projectName which let you set a single part of a man page header. Instead do the best we can if the caller doesn't pass us anything, but let the caller specify anything they want.
68 lines
1.7 KiB
Go
68 lines
1.7 KiB
Go
package cobra
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
var _ = fmt.Println
|
|
var _ = os.Stderr
|
|
|
|
func translate(in string) string {
|
|
return strings.Replace(in, "-", "\\-", -1)
|
|
}
|
|
|
|
func TestGenManDoc(t *testing.T) {
|
|
c := initializeWithRootCmd()
|
|
// Need two commands to run the command alphabetical sort
|
|
cmdEcho.AddCommand(cmdTimes, cmdEchoSub, cmdDeprecated)
|
|
c.AddCommand(cmdPrint, cmdEcho)
|
|
cmdRootWithRun.PersistentFlags().StringVarP(&flags2a, "rootflag", "r", "two", strtwoParentHelp)
|
|
|
|
out := new(bytes.Buffer)
|
|
|
|
header := &GenManHeader{
|
|
Title: "Project",
|
|
Section: "2",
|
|
}
|
|
// We generate on a subcommand so we have both subcommands and parents
|
|
cmdEcho.GenMan(header, out)
|
|
found := out.String()
|
|
|
|
// Make sure parent has - in CommandPath() in SEE ALSO:
|
|
parentPath := cmdEcho.Parent().CommandPath()
|
|
dashParentPath := strings.Replace(parentPath, " ", "-", -1)
|
|
expected := translate(dashParentPath)
|
|
expected = expected + "(" + header.Section + ")"
|
|
checkStringContains(t, found, expected)
|
|
|
|
// Our description
|
|
expected = translate(cmdEcho.Name())
|
|
checkStringContains(t, found, expected)
|
|
|
|
// Better have our example
|
|
expected = translate(cmdEcho.Name())
|
|
checkStringContains(t, found, expected)
|
|
|
|
// A local flag
|
|
expected = "boolone"
|
|
checkStringContains(t, found, expected)
|
|
|
|
// persistent flag on parent
|
|
expected = "rootflag"
|
|
checkStringContains(t, found, expected)
|
|
|
|
// We better output info about our parent
|
|
expected = translate(cmdRootWithRun.Name())
|
|
checkStringContains(t, found, expected)
|
|
|
|
// And about subcommands
|
|
expected = translate(cmdEchoSub.Name())
|
|
checkStringContains(t, found, expected)
|
|
|
|
unexpected := translate(cmdDeprecated.Name())
|
|
checkStringOmits(t, found, unexpected)
|
|
}
|