mirror of https://github.com/docker/cli.git
Add e2e test for handling of `version`/`-v`/`--version` with plugins
Previous commits fixed the first issue on #1661, this simply adds a test for it. Note that this is testing the current behaviour, without regard for the second issue in #1661 which proposes a different behaviour. Signed-off-by: Ian Campbell <ijc@docker.com>
This commit is contained in:
parent
d4ced2ef77
commit
2c624e8984
|
@ -86,3 +86,118 @@ func TestUnknownGlobal(t *testing.T) {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
// TestCliPluginsVersion checks that `-v` and friends DTRT
|
||||
func TestCliPluginsVersion(t *testing.T) {
|
||||
run, _, cleanup := prepare(t)
|
||||
defer cleanup()
|
||||
|
||||
for _, tc := range []struct {
|
||||
name string
|
||||
args []string
|
||||
expCode int
|
||||
expOut, expErr string
|
||||
}{
|
||||
{
|
||||
name: "global-version",
|
||||
args: []string{"version"},
|
||||
expCode: 0,
|
||||
expOut: "Client:\n Version:",
|
||||
expErr: icmd.None,
|
||||
},
|
||||
{
|
||||
name: "global-version-flag",
|
||||
args: []string{"--version"},
|
||||
expCode: 0,
|
||||
expOut: "Docker version",
|
||||
expErr: icmd.None,
|
||||
},
|
||||
{
|
||||
name: "global-short-version-flag",
|
||||
args: []string{"-v"},
|
||||
expCode: 0,
|
||||
expOut: "Docker version",
|
||||
expErr: icmd.None,
|
||||
},
|
||||
{
|
||||
name: "global-with-unknown-arg",
|
||||
args: []string{"version", "foo"},
|
||||
expCode: 1,
|
||||
expOut: icmd.None,
|
||||
expErr: `"docker version" accepts no arguments.`,
|
||||
},
|
||||
{
|
||||
name: "global-with-plugin-arg",
|
||||
args: []string{"version", "helloworld"},
|
||||
expCode: 1,
|
||||
expOut: icmd.None,
|
||||
expErr: `"docker version" accepts no arguments.`,
|
||||
},
|
||||
{
|
||||
name: "global-version-flag-with-unknown-arg",
|
||||
args: []string{"--version", "foo"},
|
||||
expCode: 0,
|
||||
expOut: "Docker version",
|
||||
expErr: icmd.None,
|
||||
},
|
||||
{
|
||||
name: "global-short-version-flag-with-unknown-arg",
|
||||
args: []string{"-v", "foo"},
|
||||
expCode: 0,
|
||||
expOut: "Docker version",
|
||||
expErr: icmd.None,
|
||||
},
|
||||
{
|
||||
name: "global-version-flag-with-plugin",
|
||||
args: []string{"--version", "helloworld"},
|
||||
expCode: 125,
|
||||
expOut: icmd.None,
|
||||
expErr: "unknown flag: --version",
|
||||
},
|
||||
{
|
||||
name: "global-short-version-flag-with-plugin",
|
||||
args: []string{"-v", "helloworld"},
|
||||
expCode: 125,
|
||||
expOut: icmd.None,
|
||||
expErr: "unknown shorthand flag: 'v' in -v",
|
||||
},
|
||||
{
|
||||
name: "plugin-with-version",
|
||||
args: []string{"helloworld", "version"},
|
||||
expCode: 0,
|
||||
expOut: "Hello World!",
|
||||
expErr: icmd.None,
|
||||
},
|
||||
{
|
||||
name: "plugin-with-version-flag",
|
||||
args: []string{"helloworld", "--version"},
|
||||
expCode: 125,
|
||||
expOut: icmd.None,
|
||||
expErr: "unknown flag: --version",
|
||||
},
|
||||
{
|
||||
name: "plugin-with-short-version-flag",
|
||||
args: []string{"helloworld", "-v"},
|
||||
expCode: 125,
|
||||
expOut: icmd.None,
|
||||
expErr: "unknown shorthand flag: 'v' in -v",
|
||||
},
|
||||
{
|
||||
name: "",
|
||||
args: []string{},
|
||||
expCode: 0,
|
||||
expOut: "",
|
||||
expErr: "",
|
||||
},
|
||||
} {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
res := icmd.RunCmd(run(tc.args...))
|
||||
res.Assert(t, icmd.Expected{
|
||||
ExitCode: tc.expCode,
|
||||
Out: tc.expOut,
|
||||
Err: tc.expErr,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue