remove_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package node
  2. import (
  3. "bytes"
  4. "io/ioutil"
  5. "testing"
  6. "github.com/docker/docker/cli/internal/test"
  7. "github.com/docker/docker/pkg/testutil"
  8. "github.com/pkg/errors"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestNodeRemoveErrors(t *testing.T) {
  12. testCases := []struct {
  13. args []string
  14. nodeRemoveFunc func() error
  15. expectedError string
  16. }{
  17. {
  18. expectedError: "requires at least 1 argument",
  19. },
  20. {
  21. args: []string{"nodeID"},
  22. nodeRemoveFunc: func() error {
  23. return errors.Errorf("error removing the node")
  24. },
  25. expectedError: "error removing the node",
  26. },
  27. }
  28. for _, tc := range testCases {
  29. buf := new(bytes.Buffer)
  30. cmd := newRemoveCommand(
  31. test.NewFakeCli(&fakeClient{
  32. nodeRemoveFunc: tc.nodeRemoveFunc,
  33. }, buf))
  34. cmd.SetArgs(tc.args)
  35. cmd.SetOutput(ioutil.Discard)
  36. testutil.ErrorContains(t, cmd.Execute(), tc.expectedError)
  37. }
  38. }
  39. func TestNodeRemoveMultiple(t *testing.T) {
  40. buf := new(bytes.Buffer)
  41. cmd := newRemoveCommand(test.NewFakeCli(&fakeClient{}, buf))
  42. cmd.SetArgs([]string{"nodeID1", "nodeID2"})
  43. assert.NoError(t, cmd.Execute())
  44. }