Skip to content

Commit

Permalink
volume/update: require 1 argument/fix panic
Browse files Browse the repository at this point in the history
This command was declaring that it requires at least 1 argument, when it
needs exactly 1 argument. This was causing the CLI to panic when the
command was invoked with no argument:

`docker volume update`

Signed-off-by: Laura Brehm <[email protected]>
  • Loading branch information
laurazard committed Sep 9, 2024
1 parent 6372ec9 commit daea277
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
2 changes: 1 addition & 1 deletion cli/command/volume/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func newUpdateCommand(dockerCli command.Cli) *cobra.Command {
cmd := &cobra.Command{
Use: "update [OPTIONS] [VOLUME]",
Short: "Update a volume (cluster volumes only)",
Args: cli.RequiresMaxArgs(1),
Args: cli.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
return runUpdate(cmd.Context(), dockerCli, args[0], availability, cmd.Flags())
},
Expand Down
22 changes: 22 additions & 0 deletions cli/command/volume/update_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package volume

import (
"io"
"testing"

"github.com/docker/cli/internal/test"
"gotest.tools/v3/assert"
)

func TestUpdateCmd(t *testing.T) {
cmd := newUpdateCommand(
test.NewFakeCli(&fakeClient{}),
)
cmd.SetArgs([]string{})
cmd.SetOut(io.Discard)
cmd.SetErr(io.Discard)

err := cmd.Execute()

assert.ErrorContains(t, err, "requires 1 argument")
}

0 comments on commit daea277

Please sign in to comment.