diff --git a/scripts/e2e/cron-mcp-cleanup-docker.sh b/scripts/e2e/cron-mcp-cleanup-docker.sh index 10260e251a9..09395d80ca8 100644 --- a/scripts/e2e/cron-mcp-cleanup-docker.sh +++ b/scripts/e2e/cron-mcp-cleanup-docker.sh @@ -80,4 +80,5 @@ if [ "$status" -ne 0 ]; then exit "$status" fi +cat "$CLIENT_LOG" echo "OK" diff --git a/scripts/e2e/mcp-channels-docker.sh b/scripts/e2e/mcp-channels-docker.sh index 2491201bd9a..8dfa04b7f4d 100644 --- a/scripts/e2e/mcp-channels-docker.sh +++ b/scripts/e2e/mcp-channels-docker.sh @@ -77,4 +77,5 @@ if [ "$status" -ne 0 ]; then exit "$status" fi +cat "$CLIENT_LOG" echo "OK" diff --git a/test/scripts/docker-e2e-observability.test.ts b/test/scripts/docker-e2e-observability.test.ts new file mode 100644 index 00000000000..a301271bc65 --- /dev/null +++ b/test/scripts/docker-e2e-observability.test.ts @@ -0,0 +1,17 @@ +import { readFileSync } from "node:fs"; +import { describe, expect, it } from "vitest"; + +describe("Docker E2E observability", () => { + it.each(["scripts/e2e/mcp-channels-docker.sh", "scripts/e2e/cron-mcp-cleanup-docker.sh"])( + "prints successful MCP client proof logs from %s", + (scriptPath) => { + 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( + successTail.indexOf('echo "OK"'), + ); + }, + ); +});