mirror of https://github.com/docker/cli.git
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package stack
|
|
|
|
import (
|
|
"fmt"
|
|
"sort"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/docker/cli/internal/test/environment"
|
|
"gotest.tools/v3/assert"
|
|
"gotest.tools/v3/golden"
|
|
"gotest.tools/v3/icmd"
|
|
"gotest.tools/v3/skip"
|
|
)
|
|
|
|
func TestDeployWithNamedResources(t *testing.T) {
|
|
t.Run("Swarm", func(t *testing.T) {
|
|
testDeployWithNamedResources(t, "swarm")
|
|
})
|
|
t.Run("Kubernetes", func(t *testing.T) {
|
|
// FIXME(chris-crone): currently does not work with compose for kubernetes.
|
|
t.Skip("FIXME(chris-crone): currently does not work with compose for kubernetes.")
|
|
skip.If(t, !environment.KubernetesEnabled())
|
|
|
|
testDeployWithNamedResources(t, "kubernetes")
|
|
})
|
|
}
|
|
|
|
func testDeployWithNamedResources(t *testing.T, orchestrator string) {
|
|
stackname := fmt.Sprintf("test-stack-deploy-with-names-%s", orchestrator)
|
|
composefile := golden.Path("stack-with-named-resources.yml")
|
|
|
|
result := icmd.RunCommand("docker", "stack", "deploy",
|
|
"-c", composefile, stackname, "--orchestrator", orchestrator)
|
|
defer icmd.RunCommand("docker", "stack", "rm",
|
|
"--orchestrator", orchestrator, stackname)
|
|
|
|
result.Assert(t, icmd.Success)
|
|
stdout := strings.Split(result.Stdout(), "\n")
|
|
expected := strings.Split(string(golden.Get(t, fmt.Sprintf("stack-deploy-with-names-%s.golden", orchestrator))), "\n")
|
|
sort.Strings(stdout)
|
|
sort.Strings(expected)
|
|
assert.DeepEqual(t, stdout, expected)
|
|
}
|