From 7fe43a8b4aefde3578254d048aebb932ccb10e1e Mon Sep 17 00:00:00 2001 From: Guillaume Lours <705411+glours@users.noreply.github.com> Date: Wed, 30 Nov 2022 11:12:50 +0100 Subject: [PATCH] add e2e tests using explicitly profiles Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com> --- pkg/e2e/fixtures/profiles/compose.yaml | 8 ++++ pkg/e2e/profiles_test.go | 59 ++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 pkg/e2e/fixtures/profiles/compose.yaml create mode 100644 pkg/e2e/profiles_test.go diff --git a/pkg/e2e/fixtures/profiles/compose.yaml b/pkg/e2e/fixtures/profiles/compose.yaml new file mode 100644 index 000000000..edf7e715a --- /dev/null +++ b/pkg/e2e/fixtures/profiles/compose.yaml @@ -0,0 +1,8 @@ +services: + main: + image: nginx:alpine + + profiled-service: + image: nginx:alpine + profiles: + - test-profile \ No newline at end of file diff --git a/pkg/e2e/profiles_test.go b/pkg/e2e/profiles_test.go new file mode 100644 index 000000000..2eeaf6ca0 --- /dev/null +++ b/pkg/e2e/profiles_test.go @@ -0,0 +1,59 @@ +package e2e + +import ( + "gotest.tools/v3/assert" + "gotest.tools/v3/icmd" + "strings" + "testing" +) + +func TestExplicitProfileUsage(t *testing.T) { + c := NewParallelCLI(t) + const projectName = "compose-e2e-profiles" + const profileName = "test-profile" + + t.Run("compose up with profile", func(t *testing.T) { + res := c.RunDockerComposeCmd(t, "-f", "./fixtures/profiles/compose.yaml", + "-p", projectName, "--profile", profileName, "up", "-d") + res.Assert(t, icmd.Expected{ExitCode: 0}) + res = c.RunDockerComposeCmd(t, "-p", projectName, "ps") + res.Assert(t, icmd.Expected{Out: "profiled-service"}) + res.Assert(t, icmd.Expected{Out: "main"}) + }) + + t.Run("compose stop with profile", func(t *testing.T) { + res := c.RunDockerComposeCmd(t, "-f", "./fixtures/profiles/compose.yaml", + "-p", projectName, "--profile", profileName, "stop") + res.Assert(t, icmd.Expected{ExitCode: 0}) + res = c.RunDockerComposeCmd(t, "-p", projectName, "ps", "--status", "running") + assert.Assert(t, !strings.Contains(res.Combined(), "profiled-service")) + assert.Assert(t, !strings.Contains(res.Combined(), "main")) + }) + + t.Run("compose start with profile", func(t *testing.T) { + res := c.RunDockerComposeCmd(t, "-f", "./fixtures/profiles/compose.yaml", + "-p", projectName, "--profile", profileName, "start") + res.Assert(t, icmd.Expected{ExitCode: 0}) + res = c.RunDockerComposeCmd(t, "-p", projectName, "ps", "--status", "running") + res.Assert(t, icmd.Expected{Out: "profiled-service"}) + res.Assert(t, icmd.Expected{Out: "main"}) + }) + + t.Run("compose restart with profile", func(t *testing.T) { + res := c.RunDockerComposeCmd(t, "-f", "./fixtures/profiles/compose.yaml", + "-p", projectName, "--profile", profileName, "restart") + res.Assert(t, icmd.Expected{ExitCode: 0}) + res = c.RunDockerComposeCmd(t, "-p", projectName, "ps", "--status", "running") + res.Assert(t, icmd.Expected{Out: "profiled-service"}) + res.Assert(t, icmd.Expected{Out: "main"}) + }) + + t.Run("down", func(t *testing.T) { + _ = c.RunDockerComposeCmd(t, "--project-name", projectName, "down") + }) + + t.Run("check containers after down", func(t *testing.T) { + res := c.RunDockerCmd(t, "ps", "--all") + assert.Assert(t, !strings.Contains(res.Combined(), projectName), res.Combined()) + }) +}