|
|
|
@ -29,30 +29,54 @@ func TestPrepareCommand(t *testing.T) {
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
testCases := []struct {
|
|
|
|
|
description string
|
|
|
|
|
argv []string
|
|
|
|
|
expect []string
|
|
|
|
|
ignoreFlags bool
|
|
|
|
|
}{
|
|
|
|
|
{
|
|
|
|
|
description: "no extra args",
|
|
|
|
|
argv: []string{},
|
|
|
|
|
expect: []string{"-n", "foo"},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
description: "extra args, all long flags, keep flags",
|
|
|
|
|
argv: []string{"--debug", "--foo", "bar"},
|
|
|
|
|
expect: []string{"-n", "foo", "--debug", "--foo", "bar"},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
argv: []string{},
|
|
|
|
|
description: "extra args, all long flags, ignore flags",
|
|
|
|
|
argv: []string{"--debug", "--foo", "bar"},
|
|
|
|
|
expect: []string{"-n", "foo"},
|
|
|
|
|
ignoreFlags: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
argv: []string{"--debug", "--foo", "bar"},
|
|
|
|
|
description: "extra args, arguments, long flags, ignore flags",
|
|
|
|
|
argv: []string{"arg1", "arg2", "--debug", "--foo", "bar", "arg3"},
|
|
|
|
|
expect: []string{"-n", "foo", "arg1", "arg2"},
|
|
|
|
|
ignoreFlags: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
description: "extra args, short (first) and long flags, ignore flags",
|
|
|
|
|
argv: []string{"-s", "--debug", "--foo", "bar", "arg3"},
|
|
|
|
|
expect: []string{"-n", "foo"},
|
|
|
|
|
ignoreFlags: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
argv: []string{"arg1", "arg2", "--debug", "--foo", "bar", "arg3"},
|
|
|
|
|
description: "extra args, arguments, short (first) and long flags, ignore flags",
|
|
|
|
|
argv: []string{"arg1", "arg2", "-d", "--foo", "bar", "arg3"},
|
|
|
|
|
expect: []string{"-n", "foo", "arg1", "arg2"},
|
|
|
|
|
ignoreFlags: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
description: "extra args, long (first) and short flags, ignore flags",
|
|
|
|
|
argv: []string{"--debug", "-s", "--foo", "bar", "arg3"},
|
|
|
|
|
expect: []string{"-n", "foo"},
|
|
|
|
|
ignoreFlags: true,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
for _, tc := range testCases {
|
|
|
|
|
t.Run(tc.description, func(t *testing.T) {
|
|
|
|
|
p.Metadata.IgnoreFlags = tc.ignoreFlags
|
|
|
|
|
cmd, args := p.PrepareCommand(tc.argv)
|
|
|
|
|
if cmd != "echo" {
|
|
|
|
@ -68,6 +92,7 @@ func TestPrepareCommand(t *testing.T) {
|
|
|
|
|
t.Errorf("Expected arg=%q, got %q", tc.expect[i], args[i])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|