docker-cli/cli/command/stack/swarm/deploy_composefile_test.go
Sebastiaan van Stijn 1a4491f8c6
cli/command/stack: fix "unused-receiver" linting
cli/command/stack/swarm/client_test.go:47:7: unused-receiver: method receiver 'cli' is not referenced in method's body, consider removing or renaming it as _ (revive)
    func (cli *fakeClient) ServerVersion(context.Context) (types.Version, error) {
          ^
    cli/command/stack/swarm/deploy_composefile_test.go:17:7: unused-receiver: method receiver 'n' is not referenced in method's body, consider removing or renaming it as _ (revive)
    func (n notFound) NotFound() {}
          ^
    cli/command/stack/client_test.go:47:7: unused-receiver: method receiver 'cli' is not referenced in method's body, consider removing or renaming it as _ (revive)
    func (cli *fakeClient) ServerVersion(context.Context) (types.Version, error) {
          ^
    cli/command/stack/client_test.go:183:7: unused-receiver: method receiver 'cli' is not referenced in method's body, consider removing or renaming it as _ (revive)
    func (cli *fakeClient) ServiceInspectWithRaw(_ context.Context, serviceID string, _ types.ServiceInspectOptions) (swarm.Service, []byte, error) {
          ^

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-17 15:24:57 +01:00

66 lines
1.5 KiB
Go

package swarm
import (
"context"
"errors"
"testing"
"github.com/docker/cli/internal/test/network"
networktypes "github.com/docker/docker/api/types/network"
"gotest.tools/v3/assert"
)
type notFound struct {
error
}
func (notFound) NotFound() {}
func TestValidateExternalNetworks(t *testing.T) {
testcases := []struct {
inspectResponse networktypes.Inspect
inspectError error
expectedMsg string
network string
}{
{
inspectError: notFound{},
expectedMsg: "could not be found. You need to create a swarm-scoped network",
},
{
inspectError: errors.New("unexpected"),
expectedMsg: "unexpected",
},
// FIXME(vdemeester) that doesn't work under windows, the check needs to be smarter
/*
{
inspectError: errors.New("host net does not exist on swarm classic"),
network: "host",
},
*/
{
network: "user",
expectedMsg: "is not in the right scope",
},
{
network: "user",
inspectResponse: networktypes.Inspect{Scope: "swarm"},
},
}
for _, testcase := range testcases {
client := &network.FakeClient{
NetworkInspectFunc: func(_ context.Context, _ string, _ networktypes.InspectOptions) (networktypes.Inspect, error) {
return testcase.inspectResponse, testcase.inspectError
},
}
networks := []string{testcase.network}
err := validateExternalNetworks(context.Background(), client, networks)
if testcase.expectedMsg == "" {
assert.NilError(t, err)
} else {
assert.ErrorContains(t, err, testcase.expectedMsg)
}
}
}