From f6feef8fe267add0069c992a16e06f3a9fe7f8e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Wed, 15 Oct 2025 15:04:47 +0200 Subject: [PATCH] image/test: Fix `go test` args being used by CLI commands MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By default cobra inherit the `os.Args` if there's no non-nil Args slice set. Signed-off-by: Paweł Gronowski --- cli/command/image/list_test.go | 12 ++++++++++-- cli/command/image/remove_test.go | 5 +++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/cli/command/image/list_test.go b/cli/command/image/list_test.go index 20b57328e..b11b9d106 100644 --- a/cli/command/image/list_test.go +++ b/cli/command/image/list_test.go @@ -38,7 +38,7 @@ func TestNewImagesCommandErrors(t *testing.T) { cmd := newImagesCommand(test.NewFakeCli(&fakeClient{imageListFunc: tc.imageListFunc})) cmd.SetOut(io.Discard) cmd.SetErr(io.Discard) - cmd.SetArgs(tc.args) + cmd.SetArgs(nilToEmptySlice(tc.args)) assert.ErrorContains(t, cmd.Execute(), tc.expectedError) }) } @@ -87,7 +87,7 @@ func TestNewImagesCommandSuccess(t *testing.T) { cmd := newImagesCommand(cli) cmd.SetOut(io.Discard) cmd.SetErr(io.Discard) - cmd.SetArgs(tc.args) + cmd.SetArgs(nilToEmptySlice(tc.args)) err := cmd.Execute() assert.NilError(t, err) golden.Assert(t, cli.OutBuffer().String(), fmt.Sprintf("list-command-success.%s.golden", tc.name)) @@ -97,6 +97,7 @@ func TestNewImagesCommandSuccess(t *testing.T) { func TestNewListCommandAlias(t *testing.T) { cmd := newListCommand(test.NewFakeCli(&fakeClient{})) + cmd.SetArgs([]string{""}) assert.Check(t, cmd.HasAlias("list")) assert.Check(t, !cmd.HasAlias("other")) } @@ -114,3 +115,10 @@ func TestNewListCommandAmbiguous(t *testing.T) { assert.NilError(t, err) golden.Assert(t, cli.ErrBuffer().String(), "list-command-ambiguous.golden") } + +func nilToEmptySlice[T any](s []T) []T { + if s == nil { + return []T{} + } + return s +} diff --git a/cli/command/image/remove_test.go b/cli/command/image/remove_test.go index 8d6ebe825..e9386bc9d 100644 --- a/cli/command/image/remove_test.go +++ b/cli/command/image/remove_test.go @@ -26,6 +26,7 @@ func (notFound) NotFound() {} func TestNewRemoveCommandAlias(t *testing.T) { cmd := newImageRemoveCommand(test.NewFakeCli(&fakeClient{})) + cmd.SetArgs([]string{""}) assert.Check(t, cmd.HasAlias("rmi")) assert.Check(t, cmd.HasAlias("remove")) assert.Check(t, !cmd.HasAlias("other")) @@ -69,7 +70,7 @@ func TestNewRemoveCommandErrors(t *testing.T) { })) cmd.SetOut(io.Discard) cmd.SetErr(io.Discard) - cmd.SetArgs(tc.args) + cmd.SetArgs(nilToEmptySlice(tc.args)) assert.ErrorContains(t, cmd.Execute(), tc.expectedError) }) } @@ -134,7 +135,7 @@ func TestNewRemoveCommandSuccess(t *testing.T) { cmd := newRemoveCommand(cli) cmd.SetOut(io.Discard) cmd.SetErr(io.Discard) - cmd.SetArgs(tc.args) + cmd.SetArgs(nilToEmptySlice(tc.args)) assert.NilError(t, cmd.Execute()) assert.Check(t, is.Equal(tc.expectedStderr, cli.ErrBuffer().String())) golden.Assert(t, cli.OutBuffer().String(), fmt.Sprintf("remove-command-success.%s.golden", tc.name))