commit
c8c0a048fb
@ -0,0 +1,59 @@
|
|||||||
|
package cli
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TestRegression tests a regression that was merged between versions 1.20.0 and 1.21.0
|
||||||
|
// The included app.Run line worked in 1.20.0, and then was broken in 1.21.0.
|
||||||
|
// Relevant PR: https://github.com/urfave/cli/pull/872
|
||||||
|
func TestVersionOneTwoOneRegression(t *testing.T) {
|
||||||
|
testData := []struct {
|
||||||
|
testCase string
|
||||||
|
appRunInput []string
|
||||||
|
skipArgReorder bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
testCase: "with_dash_dash",
|
||||||
|
appRunInput: []string{"cli", "command", "--flagone", "flagvalue", "--", "docker", "image", "ls", "--no-trunc"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
testCase: "with_dash_dash_and_skip_reorder",
|
||||||
|
appRunInput: []string{"cli", "command", "--flagone", "flagvalue", "--", "docker", "image", "ls", "--no-trunc"},
|
||||||
|
skipArgReorder: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
testCase: "without_dash_dash",
|
||||||
|
appRunInput: []string{"cli", "command", "--flagone", "flagvalue", "docker", "image", "ls", "--no-trunc"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
testCase: "without_dash_dash_and_skip_reorder",
|
||||||
|
appRunInput: []string{"cli", "command", "--flagone", "flagvalue", "docker", "image", "ls", "--no-trunc"},
|
||||||
|
skipArgReorder: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, test := range testData {
|
||||||
|
t.Run(test.testCase, func(t *testing.T) {
|
||||||
|
// setup
|
||||||
|
app := NewApp()
|
||||||
|
app.Commands = []Command{{
|
||||||
|
Name: "command",
|
||||||
|
SkipArgReorder: test.skipArgReorder,
|
||||||
|
Flags: []Flag{
|
||||||
|
StringFlag{
|
||||||
|
Name: "flagone",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Action: func(c *Context) error { return nil },
|
||||||
|
}}
|
||||||
|
|
||||||
|
// logic under test
|
||||||
|
err := app.Run(test.appRunInput)
|
||||||
|
|
||||||
|
// assertions
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("did not expected an error, but there was one: %s", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue