0
0
mirror of https://github.com/thegeeklab/wp-plugin-go.git synced 2024-11-22 20:30:40 +00:00
wp-plugin-go/docs/docs_test.go

68 lines
1.2 KiB
Go

package docs
import (
"bytes"
"os"
"testing"
"github.com/urfave/cli/v2"
)
func testApp() *cli.App {
app := &cli.App{
Name: "test",
Description: "test description",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "dummy-flag",
Usage: "dummy flag desc",
EnvVars: []string{"PLUGIN_DUMMY_FLAG"},
Value: "test",
},
&cli.StringFlag{
Name: "simpe-flag",
EnvVars: []string{"PLUGIN_X_SIMPLE_FLAG"},
},
&cli.StringFlag{
Name: "other.flag",
Usage: "other flag with desc",
EnvVars: []string{"PLUGIN_Z_OTHER_FLAG"},
},
},
}
return app
}
func testFileContent(t *testing.T, file string) string {
t.Helper()
data, err := os.ReadFile(file)
if err != nil {
t.Error(err)
}
data = bytes.ReplaceAll(data, []byte("\r\n"), []byte("\n"))
return string(data)
}
func TestToMarkdownFull(t *testing.T) {
tests := []struct {
name string
app *cli.App
want string
}{
{"normal branch", testApp(), "testdata/expected-doc-full.md"},
}
for _, tt := range tests {
want := testFileContent(t, tt.want)
t.Run(tt.name, func(t *testing.T) {
if got, _ := ToMarkdown(tt.app); got != want {
t.Errorf("got = %v, want %v", got, want)
}
})
}
}