@@ -2271,19 +2271,48 @@ grep -Fxq preserved "$TMPDIR/caller-fd"
|
2271 | 2271 | it("threads the live plugin tool output cap into the Docker harness", () => { |
2272 | 2272 | const runner = readFileSync(LIVE_PLUGIN_TOOL_DOCKER_E2E_PATH, "utf8"); |
2273 | 2273 | |
| 2274 | +expect(runner).toContain('source "$ROOT_DIR/scripts/lib/openclaw-e2e-instance.sh"'); |
2274 | 2275 | expect(runner).toContain( |
2275 | | -'AGENT_OUTPUT_MAX_BYTES="${OPENCLAW_LIVE_PLUGIN_TOOL_AGENT_OUTPUT_MAX_BYTES:-1048576}"', |
| 2276 | +'AGENT_TURN_TIMEOUT_SECONDS="$(openclaw_e2e_read_positive_int_env OPENCLAW_LIVE_PLUGIN_TOOL_TIMEOUT_SECONDS 300)"', |
| 2277 | +); |
| 2278 | +expect(runner).toContain( |
| 2279 | +'AGENT_OUTPUT_MAX_BYTES="$(openclaw_e2e_read_positive_int_env OPENCLAW_LIVE_PLUGIN_TOOL_AGENT_OUTPUT_MAX_BYTES 1048576)"', |
2276 | 2280 | ); |
2277 | 2281 | expect(runner).toContain( |
2278 | 2282 | '-e "OPENCLAW_LIVE_PLUGIN_TOOL_AGENT_OUTPUT_MAX_BYTES=$AGENT_OUTPUT_MAX_BYTES"', |
2279 | 2283 | ); |
| 2284 | +expect(runner).not.toContain( |
| 2285 | +'AGENT_OUTPUT_MAX_BYTES="${OPENCLAW_LIVE_PLUGIN_TOOL_AGENT_OUTPUT_MAX_BYTES:-1048576}"', |
| 2286 | +); |
2280 | 2287 | expect(runner).toContain("OPENCLAW_LIVE_PLUGIN_TOOL_AGENT_OUTPUT_DUMP_BYTES"); |
2281 | 2288 | expect(runner).toContain('tail -c "$agent_output_dump_bytes" /tmp/openclaw-agent.json'); |
2282 | 2289 | const dumpLogsStart = runner.indexOf("openclaw_e2e_dump_logs \\"); |
2283 | 2290 | const dumpLogsEnd = runner.indexOf("\n}", dumpLogsStart); |
2284 | 2291 | expect(runner.slice(dumpLogsStart, dumpLogsEnd)).not.toContain("/tmp/openclaw-agent.json"); |
2285 | 2292 | }); |
2286 | 2293 | |
| 2294 | +it.each([ |
| 2295 | +["timeout", "OPENCLAW_LIVE_PLUGIN_TOOL_TIMEOUT_SECONDS", "1e3"], |
| 2296 | +["output cap", "OPENCLAW_LIVE_PLUGIN_TOOL_AGENT_OUTPUT_MAX_BYTES", "64kb"], |
| 2297 | +])( |
| 2298 | +"rejects invalid live plugin tool Docker %s values before Docker setup", |
| 2299 | +(_label, envName, value) => { |
| 2300 | +const result = spawnSync("bash", [LIVE_PLUGIN_TOOL_DOCKER_E2E_PATH], { |
| 2301 | +encoding: "utf8", |
| 2302 | +env: { |
| 2303 | + ...process.env, |
| 2304 | +OPENCLAW_LIVE_PLUGIN_TOOL_HOST_BUILD: "0", |
| 2305 | +OPENCLAW_SKIP_DOCKER_BUILD: "1", |
| 2306 | +[envName]: value, |
| 2307 | +}, |
| 2308 | +}); |
| 2309 | + |
| 2310 | +expect(result.status).toBe(2); |
| 2311 | +expect(result.stderr).toContain(`invalid ${envName}: ${value}`); |
| 2312 | +expect(result.stderr).not.toContain("Docker image not found"); |
| 2313 | +}, |
| 2314 | +); |
| 2315 | + |
2287 | 2316 | it("keeps live plugin tool npm pack tarball paths inside the fixture directory", () => { |
2288 | 2317 | const runner = readFileSync(LIVE_PLUGIN_TOOL_DOCKER_E2E_PATH, "utf8"); |
2289 | 2318 | |
|