From 5d7e0b73a7b053e79acc10b905b7ddb6c0f8a331 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sun, 7 Jun 2026 11:44:44 +0200 Subject: [PATCH] fix(e2e): bound mcp client logs --- scripts/e2e/cron-mcp-cleanup-docker.sh | 4 ++-- scripts/e2e/mcp-channels-docker.sh | 4 ++-- scripts/e2e/mcp-code-mode-gateway-docker.sh | 4 ++-- scripts/e2e/mcp-code-mode-gateway-live-docker.sh | 4 ++-- test/scripts/docker-build-helper.test.ts | 16 ++++++++++++++++ test/scripts/docker-e2e-observability.test.ts | 4 ++-- 6 files changed, 26 insertions(+), 10 deletions(-) diff --git a/scripts/e2e/cron-mcp-cleanup-docker.sh b/scripts/e2e/cron-mcp-cleanup-docker.sh index 98e5a71a068f..2713570d1c56 100644 --- a/scripts/e2e/cron-mcp-cleanup-docker.sh +++ b/scripts/e2e/cron-mcp-cleanup-docker.sh @@ -76,9 +76,9 @@ set -e if [ "$status" -ne 0 ]; then echo "Docker cron/subagent MCP cleanup smoke failed" - cat "$CLIENT_LOG" + docker_e2e_print_log "$CLIENT_LOG" exit "$status" fi -cat "$CLIENT_LOG" +docker_e2e_print_log "$CLIENT_LOG" echo "OK" diff --git a/scripts/e2e/mcp-channels-docker.sh b/scripts/e2e/mcp-channels-docker.sh index ebc9053263b5..c86ad43c6623 100644 --- a/scripts/e2e/mcp-channels-docker.sh +++ b/scripts/e2e/mcp-channels-docker.sh @@ -73,9 +73,9 @@ set -e if [ "$status" -ne 0 ]; then echo "Docker MCP smoke failed" - cat "$CLIENT_LOG" + docker_e2e_print_log "$CLIENT_LOG" exit "$status" fi -cat "$CLIENT_LOG" +docker_e2e_print_log "$CLIENT_LOG" echo "OK" diff --git a/scripts/e2e/mcp-code-mode-gateway-docker.sh b/scripts/e2e/mcp-code-mode-gateway-docker.sh index d45870ab6d34..487c0a10f381 100755 --- a/scripts/e2e/mcp-code-mode-gateway-docker.sh +++ b/scripts/e2e/mcp-code-mode-gateway-docker.sh @@ -73,9 +73,9 @@ set -e if [ "$status" -ne 0 ]; then echo "Docker MCP code-mode API-file smoke failed" - cat "$CLIENT_LOG" + docker_e2e_print_log "$CLIENT_LOG" exit "$status" fi -cat "$CLIENT_LOG" +docker_e2e_print_log "$CLIENT_LOG" echo "OK" diff --git a/scripts/e2e/mcp-code-mode-gateway-live-docker.sh b/scripts/e2e/mcp-code-mode-gateway-live-docker.sh index 6fc2a5d0ebeb..f489795275cf 100755 --- a/scripts/e2e/mcp-code-mode-gateway-live-docker.sh +++ b/scripts/e2e/mcp-code-mode-gateway-live-docker.sh @@ -116,9 +116,9 @@ set -e if [ "$status" -ne 0 ]; then echo "Live Docker MCP code-mode API-file smoke failed" - cat "$CLIENT_LOG" + docker_e2e_print_log "$CLIENT_LOG" exit "$status" fi -cat "$CLIENT_LOG" +docker_e2e_print_log "$CLIENT_LOG" echo "OK" diff --git a/test/scripts/docker-build-helper.test.ts b/test/scripts/docker-build-helper.test.ts index 85d3be95df3d..623c0fa223fe 100644 --- a/test/scripts/docker-build-helper.test.ts +++ b/test/scripts/docker-build-helper.test.ts @@ -99,6 +99,12 @@ const CENTRALIZED_BUILD_SCRIPTS = [ "scripts/test-install-sh-e2e-docker.sh", "scripts/test-live-build-docker.sh", ] as const; +const BOUNDED_CLIENT_LOG_DOCKER_E2E_SCRIPTS = [ + "scripts/e2e/cron-mcp-cleanup-docker.sh", + "scripts/e2e/mcp-channels-docker.sh", + "scripts/e2e/mcp-code-mode-gateway-docker.sh", + "scripts/e2e/mcp-code-mode-gateway-live-docker.sh", +] as const; function packageBackedDockerRunnerPaths(): string[] { return readdirSync("scripts/e2e") @@ -185,6 +191,16 @@ describe("docker build helper", () => { expect(installE2eSmoke).not.toContain("docker run --rm \\"); }); + it("prints Docker MCP client logs through the bounded helper", () => { + for (const scriptPath of BOUNDED_CLIENT_LOG_DOCKER_E2E_SCRIPTS) { + const script = readFileSync(scriptPath, "utf8"); + + expect(script, scriptPath).toContain('source "$ROOT_DIR/scripts/lib/docker-e2e-image.sh"'); + expect(script.match(/docker_e2e_print_log "\$CLIENT_LOG"/g), scriptPath).toHaveLength(2); + expect(script, scriptPath).not.toContain('cat "$CLIENT_LOG"'); + } + }); + it("runs cleanup smoke on the native ARM platform instead of pulling an amd64 tag", () => { expect(runCleanupDefaultPlatform({ CI: "true" }, "aarch64")).toBe("linux/arm64"); expect(runCleanupDefaultPlatform({ GITHUB_ACTIONS: "true" }, "x86_64")).toBe("linux/amd64"); diff --git a/test/scripts/docker-e2e-observability.test.ts b/test/scripts/docker-e2e-observability.test.ts index 3c244c06721d..7d88c77169d0 100644 --- a/test/scripts/docker-e2e-observability.test.ts +++ b/test/scripts/docker-e2e-observability.test.ts @@ -9,8 +9,8 @@ describe("Docker E2E observability", () => { const script = readFileSync(scriptPath, "utf8"); const successTail = script.slice(script.lastIndexOf('if [ "$status" -ne 0 ]; then')); - expect(successTail).toContain('cat "$CLIENT_LOG"'); - expect(successTail.indexOf('cat "$CLIENT_LOG"')).toBeLessThan( + expect(successTail).toContain('docker_e2e_print_log "$CLIENT_LOG"'); + expect(successTail.indexOf('docker_e2e_print_log "$CLIENT_LOG"')).toBeLessThan( successTail.indexOf('echo "OK"'), ); },