add test for the new default value parsing logic as it shows up in help messages
This commit is contained in:
parent
27c832b934
commit
522dbbcea8
2
usage.go
2
usage.go
|
@ -301,7 +301,7 @@ func (p *Parser) printOption(w io.Writer, spec *spec) {
|
||||||
ways = append(ways, synopsis(spec, "-"+spec.short))
|
ways = append(ways, synopsis(spec, "-"+spec.short))
|
||||||
}
|
}
|
||||||
if len(ways) > 0 {
|
if len(ways) > 0 {
|
||||||
printTwoCols(w, strings.Join(ways, ", "), spec.help, spec.defaultVal, spec.env)
|
printTwoCols(w, strings.Join(ways, ", "), spec.help, spec.defaultString, spec.env)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -601,3 +601,35 @@ error: something went wrong
|
||||||
assert.Equal(t, expectedStdout[1:], b.String())
|
assert.Equal(t, expectedStdout[1:], b.String())
|
||||||
assert.Equal(t, -1, exitCode)
|
assert.Equal(t, -1, exitCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type lengthOf struct {
|
||||||
|
Length int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *lengthOf) UnmarshalText(b []byte) error {
|
||||||
|
p.Length = len(b)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestHelpShowsDefaultValueFromOriginalTag(t *testing.T) {
|
||||||
|
// check that the usage text prints the original string from the default tag, not
|
||||||
|
// the serialization of the parsed value
|
||||||
|
|
||||||
|
expectedHelp := `
|
||||||
|
Usage: example [--test TEST]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--test TEST [default: some_default_value]
|
||||||
|
--help, -h display this help and exit
|
||||||
|
`
|
||||||
|
|
||||||
|
var args struct {
|
||||||
|
Test *lengthOf `default:"some_default_value"`
|
||||||
|
}
|
||||||
|
p, err := NewParser(Config{Program: "example"}, &args)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
var help bytes.Buffer
|
||||||
|
p.WriteHelp(&help)
|
||||||
|
assert.Equal(t, expectedHelp[1:], help.String())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue