Преглед на файлове

e2e test for local `Log` command

Signed-off-by: Nicolas De Loof <[email protected]>
Nicolas De Loof преди 4 години
родител
ревизия
e2c55c2122
променени са 3 файла, в които са добавени 68 реда и са изтрити 0 реда
  1. 1 0
      local/compose/logs.go
  2. 7 0
      tests/compose-e2e/fixtures/logs-test/compose.yaml
  3. 60 0
      tests/compose-e2e/logs_test.go

+ 1 - 0
local/compose/logs.go

@@ -34,6 +34,7 @@ func (s *composeService) Logs(ctx context.Context, projectName string, consumer
 		Filters: filters.NewArgs(
 			projectFilter(projectName),
 		),
+		All: true,
 	})
 
 	ignore := func(string) bool {

+ 7 - 0
tests/compose-e2e/fixtures/logs-test/compose.yaml

@@ -0,0 +1,7 @@
+services:
+  ping:
+    image: busybox:1.27.2
+    command: ping localhost -c 1
+  hello:
+    image: busybox:1.31.0-uclibc
+    command: echo hello

+ 60 - 0
tests/compose-e2e/logs_test.go

@@ -0,0 +1,60 @@
+/*
+   Copyright 2020 Docker Compose CLI authors
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package e2e
+
+import (
+	"strings"
+	"testing"
+
+	"gotest.tools/v3/assert"
+
+	"gotest.tools/v3/icmd"
+
+	. "github.com/docker/compose-cli/tests/framework"
+)
+
+func TestLocalComposeLogs(t *testing.T) {
+	c := NewParallelE2eCLI(t, binDir)
+
+	const projectName = "compose-e2e-logs"
+
+	t.Run("up", func(t *testing.T) {
+		c.RunDockerCmd("compose", "up", "-d", "-f", "./fixtures/logs-test/compose.yaml", "--project-name", projectName, "-d")
+	})
+
+	t.Run("logs", func(t *testing.T) {
+		res := c.RunDockerCmd("compose", "logs", "--project-name", projectName)
+		res.Assert(t, icmd.Expected{Out: `PING localhost (127.0.0.1)`})
+		res.Assert(t, icmd.Expected{Out: `hello`})
+	})
+
+	t.Run("logs ping", func(t *testing.T) {
+		res := c.RunDockerCmd("compose", "logs", "--project-name", projectName, "ping")
+		res.Assert(t, icmd.Expected{Out: `PING localhost (127.0.0.1)`})
+		assert.Assert(t, !strings.Contains(res.Stdout(), "hello"))
+	})
+
+	t.Run("logs hello", func(t *testing.T) {
+		res := c.RunDockerCmd("compose", "logs", "--project-name", projectName, "hello", "ping")
+		res.Assert(t, icmd.Expected{Out: `PING localhost (127.0.0.1)`})
+		res.Assert(t, icmd.Expected{Out: `hello`})
+	})
+
+	t.Run("down", func(t *testing.T) {
+		_ = c.RunDockerCmd("compose", "down", "--project-name", projectName)
+	})
+}