summaryrefslogtreecommitdiff
path: root/usage_test.go
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2019-10-21 23:40:36 -0700
committerGitHub <[email protected]>2019-10-21 23:40:36 -0700
commitc0c7a3ba8a1854cd85e65cca4f0e2028698a0738 (patch)
tree4f107812eb75ca8fc0c9f11ca199205b9ef31cd9 /usage_test.go
parent873f3c2cf4ec11ac4cab84a6ebaf61f695ab8b68 (diff)
parente0fc08f7ad001371541770efcc43cf840288fee8 (diff)
Merge pull request #91 from alexflint/defaultsv1.2.0
Allow default values in struct tags
Diffstat (limited to 'usage_test.go')
-rw-r--r--usage_test.go27
1 files changed, 19 insertions, 8 deletions
diff --git a/usage_test.go b/usage_test.go
index fc0b8c5..d9d33f0 100644
--- a/usage_test.go
+++ b/usage_test.go
@@ -96,28 +96,39 @@ func (n *MyEnum) MarshalText() ([]byte, error) {
return nil, errors.New("There was a problem")
}
-func TestUsageError(t *testing.T) {
- expectedHelp := `Usage: example [--name NAME]
+func TestUsageWithDefaults(t *testing.T) {
+ expectedHelp := `Usage: example [--label LABEL] [--content CONTENT]
Options:
- --name NAME [default: error: There was a problem]
+ --label LABEL [default: cat]
+ --content CONTENT [default: dog]
--help, -h display this help and exit
`
var args struct {
- Name *MyEnum
+ Label string
+ Content string `default:"dog"`
}
- v := MyEnum(42)
- args.Name = &v
+ args.Label = "cat"
p, err := NewParser(Config{"example"}, &args)
-
- // NB: some might might expect there to be an error here
require.NoError(t, err)
+ args.Label = "should_ignore_this"
+
var help bytes.Buffer
p.WriteHelp(&help)
assert.Equal(t, expectedHelp, help.String())
}
+func TestUsageCannotMarshalToString(t *testing.T) {
+ var args struct {
+ Name *MyEnum
+ }
+ v := MyEnum(42)
+ args.Name = &v
+ _, err := NewParser(Config{"example"}, &args)
+ assert.EqualError(t, err, `args.Name: error marshaling default value to string: There was a problem`)
+}
+
func TestUsageLongPositionalWithHelp_legacyForm(t *testing.T) {
expectedHelp := `Usage: example VERYLONGPOSITIONALWITHHELP