Skip to content

Commit 96c8338

Browse files
authored
test: fold remaining Docker lanes into QA (#97708)
1 parent 0ce10d7 commit 96c8338

19 files changed

Lines changed: 211 additions & 37 deletions

qa/scenarios/config/crestodian-ring-zero-setup.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ scenario:
2424
codeRefs:
2525
- src/crestodian/operations.ts
2626
- scripts/e2e/crestodian-first-run-spec.json
27-
- scripts/e2e/crestodian-first-run-docker-client.ts
27+
- test/e2e/qa-lab/runtime/crestodian-first-run-docker-client.ts
2828
- extensions/qa-lab/src/suite-runtime-agent-process.ts
2929
execution:
3030
kind: flow
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
title: Docker agent bundle MCP tools
2+
3+
scenario:
4+
id: docker-agent-bundle-mcp-tools
5+
surface: docker-podman-hosting
6+
category: docker-podman-hosting.agent-sandbox-and-tooling
7+
coverage:
8+
primary:
9+
- docker.backed-agent-sandbox-support
10+
objective: Verify the package-installed Docker image can materialize bundled MCP tools for an agent run and apply tool policy inside the container-hosted runtime.
11+
successCriteria:
12+
- The functional Docker E2E image starts with an empty OpenClaw test state.
13+
- The mounted QA Lab harness imports packaged `dist` modules from the installed app, not source modules.
14+
- Bundled MCP tools materialize for a Docker-hosted agent session and respect effective tool policy.
15+
- The probe MCP server returns the expected tool result through the container runtime.
16+
docsRefs:
17+
- docs/install/docker.md
18+
- docs/help/testing.md
19+
codeRefs:
20+
- scripts/e2e/agent-bundle-mcp-tools-docker.sh
21+
- test/e2e/qa-lab/runtime/agent-bundle-mcp-tools-docker-client.ts
22+
execution:
23+
kind: script
24+
path: scripts/qa/docker-e2e-lane.ts
25+
summary: Runs the existing agent-bundle-mcp-tools Docker E2E lane for Docker-backed agent tooling coverage.
26+
args:
27+
- --lane
28+
- agent-bundle-mcp-tools
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
title: Docker agents delete shared workspace
2+
3+
scenario:
4+
id: docker-agents-delete-shared-workspace
5+
surface: docker-podman-hosting
6+
category: docker-podman-hosting.agent-sandbox-and-tooling
7+
coverage:
8+
primary:
9+
- docker.backed-agent-sandbox-support
10+
objective: Verify Docker-hosted agent workspace deletion keeps shared workspace state safe while running against the package-installed image.
11+
successCriteria:
12+
- The Docker lane starts from an empty OpenClaw state.
13+
- The in-container CLI resolves from the installed app image.
14+
- "`openclaw agents delete --force --json` preserves the configured shared workspace."
15+
- The fixture assertion validates the JSON result and workspace state.
16+
docsRefs:
17+
- docs/install/docker.md
18+
- docs/help/testing.md
19+
codeRefs:
20+
- scripts/e2e/agents-delete-shared-workspace-docker.sh
21+
- scripts/e2e/lib/fixture.mjs
22+
execution:
23+
kind: script
24+
path: scripts/qa/docker-e2e-lane.ts
25+
summary: Runs the existing agents-delete-shared-workspace Docker E2E lane for Docker-hosted agent workspace safety coverage.
26+
args:
27+
- --lane
28+
- agents-delete-shared-workspace
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
1-
title: Docker Compose setup evidence
1+
title: Docker setup and Compose evidence
22

33
scenario:
44
id: docker-compose-setup
55
surface: docker-podman-hosting
6-
category: docker-podman-hosting.container-operations
6+
category: docker-podman-hosting.container-setup
77
coverage:
88
primary:
99
- docker.compose
10+
- docker.local-image-setup-script
11+
- docker.only-first-run-notes
1012
objective: Link Docker Compose setup e2e coverage to Docker maturity accounting.
1113
successCriteria:
14+
- The Docker setup script builds local images, reuses preloaded GHCR images in offline mode, and preserves BuildKit behavior.
15+
- First-run setup emits Docker-only post-start notes without printing the gateway token.
1216
- Docker Compose gateway and CLI service command shape stays in sync.
1317
- Compose service env, token, auth-profile, timezone, and optional env-file defaults stay aligned.
1418
- Container-side state, config, and workspace paths override host `.env` values.
1519
docsRefs:
1620
- docs/install/docker.md
1721
- docs/help/testing.md
1822
codeRefs:
23+
- scripts/docker/setup.sh
1924
- src/docker-setup.e2e.test.ts
2025
execution:
2126
kind: vitest
2227
path: src/docker-setup.e2e.test.ts
23-
summary: Vitest e2e coverage for Docker Compose setup and mount/env contracts.
28+
summary: Vitest e2e coverage for Docker setup script, first-run notes, Compose service shape, and mount/env contracts.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
title: Docker Crestodian first-run onboarding
2+
3+
scenario:
4+
id: docker-crestodian-first-run
5+
surface: docker-podman-hosting
6+
category: docker-podman-hosting.container-setup
7+
coverage:
8+
primary:
9+
- docker.first-run-onboarding
10+
secondary:
11+
- raspberry-pi.first-run-verification
12+
objective: Verify a fresh package-installed Docker state routes through modern first-run onboarding and Crestodian setup without leaking secrets.
13+
successCriteria:
14+
- A bare invocation routes to onboarding and modern onboard routes to Crestodian.
15+
- Crestodian reports missing config, writes the default workspace/model, and creates the configured agent.
16+
- Discord setup is written through a SecretRef without persisting the raw token.
17+
- Config validation and expected Crestodian audit entries succeed.
18+
docsRefs:
19+
- docs/install/docker.md
20+
- docs/cli/crestodian.md
21+
- docs/help/testing.md
22+
codeRefs:
23+
- scripts/e2e/crestodian-first-run-docker.sh
24+
- test/e2e/qa-lab/runtime/crestodian-first-run-docker-client.ts
25+
- scripts/e2e/crestodian-first-run-spec.json
26+
execution:
27+
kind: script
28+
path: scripts/qa/docker-e2e-lane.ts
29+
summary: Runs the existing Crestodian first-run Docker E2E lane and records primary Docker first-run onboarding evidence; the Raspberry Pi link is secondary because this is generic Linux/container first-run proof, not Pi hardware proof.
30+
args:
31+
- --lane
32+
- crestodian-first-run
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
title: Docker gateway network access
2+
3+
scenario:
4+
id: docker-gateway-network
5+
surface: docker-podman-hosting
6+
category: docker-podman-hosting.container-operations
7+
coverage:
8+
primary:
9+
- docker.compose-network-access
10+
objective: Verify a Docker-networked client container can connect to the Gateway container over the compose-style service network and receive a health summary.
11+
successCriteria:
12+
- The gateway container starts on an isolated Docker network with token auth.
13+
- A separate client container connects over `ws://<gateway-container>:<port>`.
14+
- The client completes the Gateway protocol connect request with the current protocol version.
15+
- The health RPC returns a structured Gateway health summary.
16+
docsRefs:
17+
- docs/install/docker.md
18+
- docs/help/testing.md
19+
codeRefs:
20+
- scripts/e2e/gateway-network-docker.sh
21+
- scripts/e2e/lib/gateway-network/client.mjs
22+
execution:
23+
kind: script
24+
path: scripts/qa/docker-e2e-lane.ts
25+
summary: Runs the existing gateway-network Docker E2E lane for compose-style container network access coverage.
26+
args:
27+
- --lane
28+
- gateway-network
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
title: Docker npm onboard channel agent
2+
3+
scenario:
4+
id: docker-npm-onboard-channel-agent
5+
surface: docker-podman-hosting
6+
category: docker-podman-hosting.agent-sandbox-and-tooling
7+
coverage:
8+
primary:
9+
- docker.backed-agent-sandbox-support
10+
secondary:
11+
- docker.first-run-onboarding
12+
objective: Verify a package-installed Docker runner can complete non-interactive onboarding, configure a channel, start Gateway-backed agent behavior, and complete a mocked model turn.
13+
successCriteria:
14+
- The candidate OpenClaw tarball installs in a clean Docker home.
15+
- Non-interactive onboarding configures local Gateway auth and model state.
16+
- Channel setup writes the expected account config and status surfaces.
17+
- A local agent turn reaches the mocked OpenAI provider and returns the success marker.
18+
docsRefs:
19+
- docs/install/docker.md
20+
- docs/help/testing.md
21+
- docs/cli/onboard.md
22+
codeRefs:
23+
- scripts/e2e/npm-onboard-channel-agent-docker.sh
24+
- scripts/e2e/lib/npm-onboard-channel-agent/assertions.mjs
25+
execution:
26+
kind: script
27+
path: scripts/qa/docker-e2e-lane.ts
28+
summary: Runs the existing npm-onboard-channel-agent Docker E2E lane for package-installed Docker agent setup and turn coverage.
29+
args:
30+
- --lane
31+
- npm-onboard-channel-agent

scripts/e2e/agent-bundle-mcp-tools-docker.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ docker_e2e_run_with_harness \
2828
bash -lc "set -euo pipefail
2929
source scripts/lib/openclaw-e2e-instance.sh
3030
openclaw_e2e_eval_test_state_from_b64 \"\${OPENCLAW_TEST_STATE_SCRIPT_B64:?missing OPENCLAW_TEST_STATE_SCRIPT_B64}\"
31-
tsx scripts/e2e/agent-bundle-mcp-tools-docker-client.ts
31+
tsx test/e2e/qa-lab/runtime/agent-bundle-mcp-tools-docker-client.ts
3232
" >"$RUN_LOG" 2>&1
3333
status=${PIPESTATUS[0]}
3434
set -e

scripts/e2e/crestodian-first-run-docker.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ docker_e2e_run_with_harness \
2828
bash -lc "set -euo pipefail
2929
source scripts/lib/openclaw-e2e-instance.sh
3030
openclaw_e2e_eval_test_state_from_b64 \"\${OPENCLAW_TEST_STATE_SCRIPT_B64:?missing OPENCLAW_TEST_STATE_SCRIPT_B64}\"
31-
tsx scripts/e2e/crestodian-first-run-docker-client.ts
31+
tsx test/e2e/qa-lab/runtime/crestodian-first-run-docker-client.ts
3232
" >"$RUN_LOG" 2>&1
3333
status=${PIPESTATUS[0]}
3434
set -e

scripts/e2e/openai-image-auth-docker.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ export OPENCLAW_SKIP_GMAIL_WATCHER=1
2727
export OPENCLAW_SKIP_CRON=1
2828
export OPENCLAW_SKIP_CANVAS_HOST=1
2929
30-
tsx scripts/e2e/openai-image-auth-docker-client.ts
30+
tsx test/e2e/qa-lab/runtime/openai-image-auth-docker-client.ts
3131
'

0 commit comments

Comments
 (0)