Merge pull request #3330 from cli/man-gen-test
Add tests for manual pages generation
This commit is contained in:
commit
b2e32a508d
2 changed files with 58 additions and 28 deletions
|
|
@ -3,6 +3,7 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/cli/cli/internal/docs"
|
||||
|
|
@ -13,27 +14,30 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
var flagError pflag.ErrorHandling
|
||||
docCmd := pflag.NewFlagSet("", flagError)
|
||||
manPage := docCmd.BoolP("man-page", "", false, "Generate manual pages")
|
||||
website := docCmd.BoolP("website", "", false, "Generate website pages")
|
||||
dir := docCmd.StringP("doc-path", "", "", "Path directory where you want generate doc files")
|
||||
help := docCmd.BoolP("help", "h", false, "Help about any command")
|
||||
|
||||
if err := docCmd.Parse(os.Args); err != nil {
|
||||
if err := run(os.Args); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func run(args []string) error {
|
||||
flags := pflag.NewFlagSet("", pflag.ContinueOnError)
|
||||
manPage := flags.BoolP("man-page", "", false, "Generate manual pages")
|
||||
website := flags.BoolP("website", "", false, "Generate website pages")
|
||||
dir := flags.StringP("doc-path", "", "", "Path directory where you want generate doc files")
|
||||
help := flags.BoolP("help", "h", false, "Help about any command")
|
||||
|
||||
if err := flags.Parse(args); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if *help {
|
||||
_, err := fmt.Fprintf(os.Stderr, "Usage of %s:\n\n%s", os.Args[0], docCmd.FlagUsages())
|
||||
if err != nil {
|
||||
fatal(err)
|
||||
}
|
||||
os.Exit(1)
|
||||
fmt.Fprintf(os.Stderr, "Usage of %s:\n\n%s", filepath.Base(args[0]), flags.FlagUsages())
|
||||
return nil
|
||||
}
|
||||
|
||||
if *dir == "" {
|
||||
fatal("no dir set")
|
||||
return fmt.Errorf("error: --doc-path not set")
|
||||
}
|
||||
|
||||
io, _, _, _ := iostreams.Test()
|
||||
|
|
@ -43,15 +47,13 @@ func main() {
|
|||
}, "", "")
|
||||
rootCmd.InitDefaultHelpCmd()
|
||||
|
||||
err := os.MkdirAll(*dir, 0755)
|
||||
if err != nil {
|
||||
fatal(err)
|
||||
if err := os.MkdirAll(*dir, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if *website {
|
||||
err = docs.GenMarkdownTreeCustom(rootCmd, *dir, filePrepender, linkHandler)
|
||||
if err != nil {
|
||||
fatal(err)
|
||||
if err := docs.GenMarkdownTreeCustom(rootCmd, *dir, filePrepender, linkHandler); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -62,11 +64,12 @@ func main() {
|
|||
Source: "",
|
||||
Manual: "",
|
||||
}
|
||||
err = docs.GenManTree(rootCmd, header, *dir)
|
||||
if err != nil {
|
||||
fatal(err)
|
||||
if err := docs.GenManTree(rootCmd, header, *dir); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func filePrepender(filename string) string {
|
||||
|
|
@ -82,11 +85,6 @@ func linkHandler(name string) string {
|
|||
return fmt.Sprintf("./%s", strings.TrimSuffix(name, ".md"))
|
||||
}
|
||||
|
||||
func fatal(msg interface{}) {
|
||||
fmt.Fprintln(os.Stderr, msg)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
type browser struct{}
|
||||
|
||||
func (b *browser) Browse(url string) error {
|
||||
|
|
|
|||
32
cmd/gen-docs/main_test.go
Normal file
32
cmd/gen-docs/main_test.go
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func Test_run(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
args := []string{"--man-page", "--website", "--doc-path", dir}
|
||||
err := run(args)
|
||||
if err != nil {
|
||||
t.Fatalf("got error: %v", err)
|
||||
}
|
||||
|
||||
manPage, err := ioutil.ReadFile(dir + "/gh-issue-create.1")
|
||||
if err != nil {
|
||||
t.Fatalf("error reading `gh-issue-create.1`: %v", err)
|
||||
}
|
||||
if !strings.Contains(string(manPage), `\fBgh issue create`) {
|
||||
t.Fatal("man page corrupted")
|
||||
}
|
||||
|
||||
markdownPage, err := ioutil.ReadFile(dir + "/gh_issue_create.md")
|
||||
if err != nil {
|
||||
t.Fatalf("error reading `gh_issue_create.md`: %v", err)
|
||||
}
|
||||
if !strings.Contains(string(markdownPage), `## gh issue create`) {
|
||||
t.Fatal("markdown page corrupted")
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue