File: docs_test.go

package info (click to toggle)
golang-github-urfave-cli 1.22.5-3
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 728 kB
  • sloc: sh: 17; makefile: 4
file content (122 lines) | stat: -rw-r--r-- 2,333 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package cli

import (
	"io/ioutil"
	"testing"
)

func testApp() *App {
	app := NewApp()
	app.Name = "greet"
	app.Flags = []Flag{
		StringFlag{
			Name:      "socket, s",
			Usage:     "some 'usage' text",
			Value:     "value",
			TakesFile: true,
		},
		StringFlag{Name: "flag, fl, f"},
		BoolFlag{
			Name:  "another-flag, b",
			Usage: "another usage text",
		},
	}
	app.Commands = []Command{{
		Aliases: []string{"c"},
		Flags: []Flag{
			StringFlag{
				Name:      "flag, fl, f",
				TakesFile: true,
			},
			BoolFlag{
				Name:  "another-flag, b",
				Usage: "another usage text",
			},
		},
		Name:  "config",
		Usage: "another usage test",
		Subcommands: []Command{{
			Aliases: []string{"s", "ss"},
			Flags: []Flag{
				StringFlag{Name: "sub-flag, sub-fl, s"},
				BoolFlag{
					Name:  "sub-command-flag, s",
					Usage: "some usage text",
				},
			},
			Name:  "sub-config",
			Usage: "another usage test",
		}},
	}, {
		Aliases: []string{"i", "in"},
		Name:    "info",
		Usage:   "retrieve generic information",
	}, {
		Name: "some-command",
	}, {
		Name:   "hidden-command",
		Hidden: true,
	}}
	app.UsageText = "app [first_arg] [second_arg]"
	app.Usage = "Some app"
	app.Author = "Harrison"
	app.Email = "harrison@lolwut.com"
	app.Authors = []Author{{Name: "Oliver Allen", Email: "oliver@toyshop.com"}}
	return app
}

func expectFileContent(t *testing.T, file, got string) {
	data, err := ioutil.ReadFile(file)
	expect(t, err, nil)
	expect(t, got, string(data))
}

func TestToMarkdownFull(t *testing.T) {
	// Given
	app := testApp()

	// When
	res, err := app.ToMarkdown()

	// Then
	expect(t, err, nil)
	expectFileContent(t, "testdata/expected-doc-full.md", res)
}

func TestToMarkdownNoFlags(t *testing.T) {
	// Given
	app := testApp()
	app.Flags = nil

	// When
	res, err := app.ToMarkdown()

	// Then
	expect(t, err, nil)
	expectFileContent(t, "testdata/expected-doc-no-flags.md", res)
}

func TestToMarkdownNoCommands(t *testing.T) {
	// Given
	app := testApp()
	app.Commands = nil

	// When
	res, err := app.ToMarkdown()

	// Then
	expect(t, err, nil)
	expectFileContent(t, "testdata/expected-doc-no-commands.md", res)
}

func TestToMan(t *testing.T) {
	// Given
	app := testApp()

	// When
	res, err := app.ToMan()

	// Then
	expect(t, err, nil)
	expectFileContent(t, "testdata/expected-doc-full.man", res)
}