diff options
| author | Alex Flint <[email protected]> | 2024-04-02 12:05:00 -0400 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2024-04-02 12:05:00 -0400 |
| commit | 3ddfffdcd33a4419f68581e515113dbfbcfaaa7d (patch) | |
| tree | 5fceccef7490b7df0bdf9145b1b58c58379560f6 /usage_test.go | |
| parent | 68948b2ac14c5cda057c88f1d7cba992ca053a2c (diff) | |
add test for help and usage when a --version flag is present
Diffstat (limited to 'usage_test.go')
| -rw-r--r-- | usage_test.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/usage_test.go b/usage_test.go index 1a64ad4..b6ce8e5 100644 --- a/usage_test.go +++ b/usage_test.go @@ -260,6 +260,39 @@ Options: assert.Equal(t, expectedUsage, strings.TrimSpace(usage.String())) } +type userDefinedVersionFlag struct { + ShowVersion bool `arg:"--version" help:"this is a user-defined version flag"` +} + +// Version returns the version for this program +func (userDefinedVersionFlag) Version() string { + return "example 3.2.1" +} + +func TestUsageWithUserDefinedVersionFlag(t *testing.T) { + expectedUsage := "example 3.2.1\nUsage: example [--version]" + + expectedHelp := ` +example 3.2.1 +Usage: example [--version] + +Options: + --version this is a user-defined version flag + --help, -h display this help and exit +` + os.Args[0] = "example" + p, err := NewParser(Config{}, &userDefinedVersionFlag{}) + require.NoError(t, err) + + var help bytes.Buffer + p.WriteHelp(&help) + assert.Equal(t, expectedHelp[1:], help.String()) + + var usage bytes.Buffer + p.WriteUsage(&usage) + assert.Equal(t, expectedUsage, strings.TrimSpace(usage.String())) +} + type described struct{} // Described returns the description for this program |
