Skip to content

Commit

Permalink
Fix EnumVarP func to show default value associated with EnumVariable (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
RamanaReddy0M committed Feb 15, 2023
1 parent 27bc644 commit 47f28bd
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion goflags.go
Original file line number Diff line number Diff line change
Expand Up @@ -490,7 +490,7 @@ func (flagSet *FlagSet) EnumVarP(field *string, long, short string, defaultValue
flagData := &FlagData{
usage: usage,
long: long,
defaultValue: defaultValue,
defaultValue: *field,
}
if short != "" {
flagData.short = short
Expand Down
16 changes: 16 additions & 0 deletions goflags_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ func TestUsageOrder(t *testing.T) {
var stringSliceData2 StringSlice
var intData int
var boolData bool
var enumData string

flagSet.SetGroup("String", "String")
flagSet.StringVar(&stringData, "string-value", "", "String example value example").Group("String")
Expand All @@ -111,6 +112,18 @@ func TestUsageOrder(t *testing.T) {
flagSet.BoolVar(&boolData, "bool-with-default-value", true, "Bool with default value example").Group("Bool")
flagSet.BoolVarP(&boolData, "bool-with-default-value2", "bwdv", true, "Bool with default value example #2").Group("Bool")

flagSet.SetGroup("Enum", "Enum")
flagSet.EnumVar(&enumData, "enum", EnumVariable(-1), "Enum value(zero/one/two) example", AllowdTypes{
"zero": EnumVariable(0),
"one": EnumVariable(1),
"two": EnumVariable(2),
}).Group("Enum")
flagSet.EnumVarP(&enumData, "enum-with-default-value", "en", EnumVariable(0), "Enum with default value(zero/one/two)", AllowdTypes{
"zero": EnumVariable(0),
"one": EnumVariable(1),
"two": EnumVariable(2),
}).Group("Enum")

output := &bytes.Buffer{}
flagSet.CommandLine.SetOutput(output)

Expand Down Expand Up @@ -145,6 +158,9 @@ BOOLEAN:
-bv, -bool-value2 Bool value example #2
-bool-with-default-value Bool with default value example (default true)
-bwdv, -bool-with-default-value2 Bool with default value example #2 (default true)
ENUM:
-enum value Enum value(zero/one/two) example
-en, -enum-with-default-value value Enum with default value(zero/one/two) (default zero)
`
assert.Equal(t, expected, actual)

Expand Down

0 comments on commit 47f28bd

Please sign in to comment.