From e2c55c2122079daa78f315cb2f27abf883918fbd Mon Sep 17 00:00:00 2001 From: Nicolas De Loof <nicolas.deloof@gmail.com> Date: Thu, 17 Dec 2020 11:48:58 +0100 Subject: [PATCH] e2e test for local `Log` command Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com> --- local/compose/logs.go | 1 + .../fixtures/logs-test/compose.yaml | 7 +++ tests/compose-e2e/logs_test.go | 60 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 tests/compose-e2e/fixtures/logs-test/compose.yaml create mode 100644 tests/compose-e2e/logs_test.go diff --git a/local/compose/logs.go b/local/compose/logs.go index c3c395d3c..3b8d34ac3 100644 --- a/local/compose/logs.go +++ b/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 { diff --git a/tests/compose-e2e/fixtures/logs-test/compose.yaml b/tests/compose-e2e/fixtures/logs-test/compose.yaml new file mode 100644 index 000000000..dac5610bf --- /dev/null +++ b/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 diff --git a/tests/compose-e2e/logs_test.go b/tests/compose-e2e/logs_test.go new file mode 100644 index 000000000..95a60f0b6 --- /dev/null +++ b/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) + }) +}