Add more tests for BoolFlag{Value: true}
This commit is contained in:
parent
f2d5ed9933
commit
9c132d990a
87
flag_test.go
87
flag_test.go
@ -843,6 +843,93 @@ func TestParseMultiBoolFromEnvCascade(t *testing.T) {
|
|||||||
a.Run([]string{"run"})
|
a.Run([]string{"run"})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestParseMultiBoolTrue(t *testing.T) {
|
||||||
|
a := App{
|
||||||
|
Flags: []Flag{
|
||||||
|
BoolFlag{Name: "implode, i", Value: true},
|
||||||
|
},
|
||||||
|
Action: func(ctx *Context) error {
|
||||||
|
if ctx.Bool("implode") {
|
||||||
|
t.Errorf("main name not set")
|
||||||
|
}
|
||||||
|
if ctx.Bool("i") {
|
||||||
|
t.Errorf("short name not set")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
a.Run([]string{"run", "--implode=false"})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseDestinationBoolTrue(t *testing.T) {
|
||||||
|
dest := true
|
||||||
|
|
||||||
|
a := App{
|
||||||
|
Flags: []Flag{
|
||||||
|
BoolFlag{
|
||||||
|
Name: "dest",
|
||||||
|
Value: true,
|
||||||
|
Destination: &dest,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Action: func(ctx *Context) error {
|
||||||
|
if dest {
|
||||||
|
t.Errorf("expected destination Bool false")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
a.Run([]string{"run", "--dest=false"})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseMultiBoolTrueFromEnv(t *testing.T) {
|
||||||
|
os.Clearenv()
|
||||||
|
os.Setenv("APP_DEBUG", "0")
|
||||||
|
a := App{
|
||||||
|
Flags: []Flag{
|
||||||
|
BoolFlag{
|
||||||
|
Name: "debug, d",
|
||||||
|
Value: true,
|
||||||
|
EnvVar: "APP_DEBUG",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Action: func(ctx *Context) error {
|
||||||
|
if ctx.Bool("debug") {
|
||||||
|
t.Errorf("main name not set from env")
|
||||||
|
}
|
||||||
|
if ctx.Bool("d") {
|
||||||
|
t.Errorf("short name not set from env")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
a.Run([]string{"run"})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseMultiBoolTrueFromEnvCascade(t *testing.T) {
|
||||||
|
os.Clearenv()
|
||||||
|
os.Setenv("APP_DEBUG", "0")
|
||||||
|
a := App{
|
||||||
|
Flags: []Flag{
|
||||||
|
BoolFlag{
|
||||||
|
Name: "debug, d",
|
||||||
|
Value: true,
|
||||||
|
EnvVar: "COMPAT_DEBUG,APP_DEBUG",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Action: func(ctx *Context) error {
|
||||||
|
if ctx.Bool("debug") {
|
||||||
|
t.Errorf("main name not set from env")
|
||||||
|
}
|
||||||
|
if ctx.Bool("d") {
|
||||||
|
t.Errorf("short name not set from env")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
a.Run([]string{"run"})
|
||||||
|
}
|
||||||
|
|
||||||
type Parser [2]string
|
type Parser [2]string
|
||||||
|
|
||||||
func (p *Parser) Set(value string) error {
|
func (p *Parser) Set(value string) error {
|
||||||
|
Loading…
Reference in New Issue
Block a user