DockerCLI/cli/command/swarm/update_test.go

183 lines
5.4 KiB
Go
Raw Normal View History

package swarm
import (
"fmt"
"io"
"testing"
"time"
"github.com/docker/cli/internal/test"
cli/command: remove dot-imports and unhandled errors Please the linters in preparation of updating golangci-lint; - remove dot-imports - add some checks for unhandled errors - replace some fixed-value variables for consts cli/command/image/build/context.go:238:17: G107: Potential HTTP request made with variable url (gosec) if resp, err = http.Get(url); err != nil { ^ cli/command/idresolver/idresolver_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/registry_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/cli/command" // Prevents a circular import with "github.com/docker/cli/internal/test" ^ cli/command/task/print_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/update_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/unlock_key_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/join_token_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/promote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/demote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/node/ps_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/update_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/secret/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/secret/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/network/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/container/list_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/service/list_test.go:12:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/service/client_test.go:6:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/list_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/services_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/ps_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-10-23 08:51:01 -04:00
"github.com/docker/cli/internal/test/builders"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
)
func TestSwarmUpdateErrors(t *testing.T) {
testCases := []struct {
name string
args []string
flags map[string]string
swarmInspectFunc func() (swarm.Swarm, error)
swarmUpdateFunc func(swarm swarm.Spec, flags swarm.UpdateFlags) error
swarmGetUnlockKeyFunc func() (types.SwarmUnlockKeyResponse, error)
expectedError string
}{
{
name: "too-many-args",
args: []string{"foo"},
expectedError: "accepts no arguments",
},
{
name: "swarm-inspect-error",
flags: map[string]string{
flagTaskHistoryLimit: "10",
},
swarmInspectFunc: func() (swarm.Swarm, error) {
return swarm.Swarm{}, errors.Errorf("error inspecting the swarm")
},
expectedError: "error inspecting the swarm",
},
{
name: "swarm-update-error",
flags: map[string]string{
flagTaskHistoryLimit: "10",
},
swarmUpdateFunc: func(swarm swarm.Spec, flags swarm.UpdateFlags) error {
return errors.Errorf("error updating the swarm")
},
expectedError: "error updating the swarm",
},
{
name: "swarm-unlockkey-error",
flags: map[string]string{
flagAutolock: "true",
},
swarmInspectFunc: func() (swarm.Swarm, error) {
cli/command: remove dot-imports and unhandled errors Please the linters in preparation of updating golangci-lint; - remove dot-imports - add some checks for unhandled errors - replace some fixed-value variables for consts cli/command/image/build/context.go:238:17: G107: Potential HTTP request made with variable url (gosec) if resp, err = http.Get(url); err != nil { ^ cli/command/idresolver/idresolver_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/registry_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/cli/command" // Prevents a circular import with "github.com/docker/cli/internal/test" ^ cli/command/task/print_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/update_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/unlock_key_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/join_token_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/promote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/demote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/node/ps_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/update_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/secret/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/secret/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/network/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/container/list_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/service/list_test.go:12:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/service/client_test.go:6:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/list_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/services_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/ps_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-10-23 08:51:01 -04:00
return *builders.Swarm(), nil
},
swarmGetUnlockKeyFunc: func() (types.SwarmUnlockKeyResponse, error) {
return types.SwarmUnlockKeyResponse{}, errors.Errorf("error getting unlock key")
},
expectedError: "error getting unlock key",
},
}
for _, tc := range testCases {
cmd := newUpdateCommand(
test.NewFakeCli(&fakeClient{
swarmInspectFunc: tc.swarmInspectFunc,
swarmUpdateFunc: tc.swarmUpdateFunc,
swarmGetUnlockKeyFunc: tc.swarmGetUnlockKeyFunc,
}))
cmd.SetArgs(tc.args)
for key, value := range tc.flags {
cli/command: remove dot-imports and unhandled errors Please the linters in preparation of updating golangci-lint; - remove dot-imports - add some checks for unhandled errors - replace some fixed-value variables for consts cli/command/image/build/context.go:238:17: G107: Potential HTTP request made with variable url (gosec) if resp, err = http.Get(url); err != nil { ^ cli/command/idresolver/idresolver_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/registry_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/cli/command" // Prevents a circular import with "github.com/docker/cli/internal/test" ^ cli/command/task/print_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/update_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/unlock_key_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/join_token_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/promote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/demote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/node/ps_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/update_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/secret/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/secret/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/network/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/container/list_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/service/list_test.go:12:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/service/client_test.go:6:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/list_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/services_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/ps_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-10-23 08:51:01 -04:00
assert.Check(t, cmd.Flags().Set(key, value))
}
cmd.SetOut(io.Discard)
assert.ErrorContains(t, cmd.Execute(), tc.expectedError)
}
}
func TestSwarmUpdate(t *testing.T) {
cli/command: remove dot-imports and unhandled errors Please the linters in preparation of updating golangci-lint; - remove dot-imports - add some checks for unhandled errors - replace some fixed-value variables for consts cli/command/image/build/context.go:238:17: G107: Potential HTTP request made with variable url (gosec) if resp, err = http.Get(url); err != nil { ^ cli/command/idresolver/idresolver_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/registry_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/cli/command" // Prevents a circular import with "github.com/docker/cli/internal/test" ^ cli/command/task/print_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/update_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/unlock_key_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/join_token_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/promote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/demote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/node/ps_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/update_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/secret/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/secret/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/network/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/container/list_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/service/list_test.go:12:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/service/client_test.go:6:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/list_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/services_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/ps_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-10-23 08:51:01 -04:00
swarmInfo := builders.Swarm()
swarmInfo.ClusterInfo.TLSInfo.TrustRoot = "trustroot"
testCases := []struct {
name string
args []string
flags map[string]string
swarmInspectFunc func() (swarm.Swarm, error)
swarmUpdateFunc func(swarm swarm.Spec, flags swarm.UpdateFlags) error
swarmGetUnlockKeyFunc func() (types.SwarmUnlockKeyResponse, error)
}{
{
name: "noargs",
},
{
name: "all-flags-quiet",
flags: map[string]string{
flagTaskHistoryLimit: "10",
flagDispatcherHeartbeat: "10s",
flagCertExpiry: "20s",
flagExternalCA: "protocol=cfssl,url=https://example.com.",
flagMaxSnapshots: "10",
flagSnapshotInterval: "100",
flagAutolock: "true",
},
swarmInspectFunc: func() (swarm.Swarm, error) {
return *swarmInfo, nil
},
swarmUpdateFunc: func(swarm swarm.Spec, flags swarm.UpdateFlags) error {
if *swarm.Orchestration.TaskHistoryRetentionLimit != 10 {
return errors.Errorf("historyLimit not correctly set")
}
heartbeatDuration, err := time.ParseDuration("10s")
if err != nil {
return err
}
if swarm.Dispatcher.HeartbeatPeriod != heartbeatDuration {
return errors.Errorf("heartbeatPeriodLimit not correctly set")
}
certExpiryDuration, err := time.ParseDuration("20s")
if err != nil {
return err
}
if swarm.CAConfig.NodeCertExpiry != certExpiryDuration {
return errors.Errorf("certExpiry not correctly set")
}
if len(swarm.CAConfig.ExternalCAs) != 1 || swarm.CAConfig.ExternalCAs[0].CACert != "trustroot" {
return errors.Errorf("externalCA not correctly set")
}
if *swarm.Raft.KeepOldSnapshots != 10 {
return errors.Errorf("keepOldSnapshots not correctly set")
}
if swarm.Raft.SnapshotInterval != 100 {
return errors.Errorf("snapshotInterval not correctly set")
}
if !swarm.EncryptionConfig.AutoLockManagers {
return errors.Errorf("autolock not correctly set")
}
return nil
},
},
{
name: "autolock-unlock-key",
flags: map[string]string{
flagTaskHistoryLimit: "10",
flagAutolock: "true",
},
swarmUpdateFunc: func(swarm swarm.Spec, flags swarm.UpdateFlags) error {
if *swarm.Orchestration.TaskHistoryRetentionLimit != 10 {
return errors.Errorf("historyLimit not correctly set")
}
return nil
},
swarmInspectFunc: func() (swarm.Swarm, error) {
cli/command: remove dot-imports and unhandled errors Please the linters in preparation of updating golangci-lint; - remove dot-imports - add some checks for unhandled errors - replace some fixed-value variables for consts cli/command/image/build/context.go:238:17: G107: Potential HTTP request made with variable url (gosec) if resp, err = http.Get(url); err != nil { ^ cli/command/idresolver/idresolver_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/registry_test.go:7:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/cli/command" // Prevents a circular import with "github.com/docker/cli/internal/test" ^ cli/command/task/print_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/update_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/unlock_key_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/swarm/join_token_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/promote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/demote_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/node/ps_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/update_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/node/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions ^ cli/command/secret/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/secret/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/inspect_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/volume/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/inspect_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/config/ls_test.go:11:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/network/list_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/container/list_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/service/list_test.go:12:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" ^ cli/command/service/client_test.go:6:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/list_test.go:8:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/services_test.go:9:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ cli/command/stack/ps_test.go:10:2: dot-imports: should not use dot imports (revive) . "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function ^ Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-10-23 08:51:01 -04:00
return *builders.Swarm(), nil
},
swarmGetUnlockKeyFunc: func() (types.SwarmUnlockKeyResponse, error) {
return types.SwarmUnlockKeyResponse{
UnlockKey: "unlock-key",
}, nil
},
},
}
for _, tc := range testCases {
cli := test.NewFakeCli(&fakeClient{
swarmInspectFunc: tc.swarmInspectFunc,
swarmUpdateFunc: tc.swarmUpdateFunc,
swarmGetUnlockKeyFunc: tc.swarmGetUnlockKeyFunc,
})
cmd := newUpdateCommand(cli)
cmd.SetArgs(tc.args)
for key, value := range tc.flags {
assert.Check(t, cmd.Flags().Set(key, value))
}
cmd.SetOut(cli.OutBuffer())
assert.NilError(t, cmd.Execute())
golden.Assert(t, cli.OutBuffer().String(), fmt.Sprintf("update-%s.golden", tc.name))
}
}