Merge pull request #1260 from dearchap/issue_1254
Add test case for short option handling
This commit is contained in:
commit
c864c2425e
39
flag_test.go
39
flag_test.go
@ -2241,3 +2241,42 @@ func TestTimestampFlagApply_WithDestination(t *testing.T) {
|
||||
expect(t, err, nil)
|
||||
expect(t, *fl.Destination.timestamp, expectedResult)
|
||||
}
|
||||
|
||||
// Test issue #1254
|
||||
// StringSlice() with UseShortOptionHandling causes duplicated entries, depending on the ordering of the flags
|
||||
func TestSliceShortOptionHandle(t *testing.T) {
|
||||
wasCalled := false
|
||||
err := (&App{
|
||||
Commands: []*Command{
|
||||
{
|
||||
Name: "foobar",
|
||||
UseShortOptionHandling: true,
|
||||
Action: func(ctx *Context) error {
|
||||
wasCalled = true
|
||||
if ctx.Bool("i") != true {
|
||||
t.Error("bool i not set")
|
||||
}
|
||||
if ctx.Bool("t") != true {
|
||||
t.Error("bool i not set")
|
||||
}
|
||||
ss := ctx.StringSlice("net")
|
||||
if !reflect.DeepEqual(ss, []string{"foo"}) {
|
||||
t.Errorf("Got different slice(%v) than expected", ss)
|
||||
}
|
||||
return nil
|
||||
},
|
||||
Flags: []Flag{
|
||||
&StringSliceFlag{Name: "net"},
|
||||
&BoolFlag{Name: "i"},
|
||||
&BoolFlag{Name: "t"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}).Run([]string{"run", "foobar", "--net=foo", "-it"})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !wasCalled {
|
||||
t.Fatal("Action callback was never called")
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user