Skip to content

Commit 2a0e63d

Browse files
committed
fix(e2e): validate chat tools timeout
1 parent e3bab80 commit 2a0e63d

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

scripts/e2e/openai-chat-tools-docker.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ source "$ROOT_DIR/scripts/lib/docker-e2e-image.sh"
77
IMAGE_NAME="$(docker_e2e_resolve_image "openclaw-openai-chat-tools-e2e" OPENCLAW_OPENAI_CHAT_TOOLS_E2E_IMAGE)"
88
SKIP_BUILD="${OPENCLAW_OPENAI_CHAT_TOOLS_E2E_SKIP_BUILD:-0}"
99
PORT="$(docker_e2e_read_tcp_port_env OPENCLAW_OPENAI_CHAT_TOOLS_PORT 18789)"
10+
TIMEOUT_SECONDS="$(docker_e2e_read_positive_int_env OPENCLAW_OPENAI_CHAT_TOOLS_TIMEOUT_SECONDS 180)"
1011
TOKEN="openai-chat-tools-e2e-$$"
1112
PROFILE_FILE="${OPENCLAW_OPENAI_CHAT_TOOLS_PROFILE_FILE:-${OPENCLAW_TESTBOX_PROFILE_FILE:-$HOME/.openclaw-testbox-live.profile}}"
1213
if [ ! -f "$PROFILE_FILE" ] && [ -f "$HOME/.profile" ]; then
@@ -63,7 +64,7 @@ docker_e2e_run_logged_with_harness openai-chat-tools \
6364
-e OPENAI_BASE_URL \
6465
-e "OPENCLAW_GATEWAY_TOKEN=$TOKEN" \
6566
-e "OPENCLAW_OPENAI_CHAT_TOOLS_MODEL=${OPENCLAW_OPENAI_CHAT_TOOLS_MODEL:-openai/gpt-5.4-mini}" \
66-
-e "OPENCLAW_OPENAI_CHAT_TOOLS_TIMEOUT_SECONDS=${OPENCLAW_OPENAI_CHAT_TOOLS_TIMEOUT_SECONDS:-180}" \
67+
-e "OPENCLAW_OPENAI_CHAT_TOOLS_TIMEOUT_SECONDS=$TIMEOUT_SECONDS" \
6768
-e "OPENCLAW_TEST_STATE_SCRIPT_B64=$OPENCLAW_TEST_STATE_SCRIPT_B64" \
6869
-e "PORT=$PORT" \
6970
"${PROFILE_MOUNT[@]}" \

test/scripts/docker-build-helper.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3232,6 +3232,21 @@ output="$(cat "$sampler_log")"
32323232
expect(result.stderr).not.toContain("Docker image not found");
32333233
});
32343234

3235+
it("rejects invalid OpenAI chat tools Docker timeouts before auth setup", () => {
3236+
const result = spawnSync("bash", [OPENAI_CHAT_TOOLS_DOCKER_E2E_PATH], {
3237+
encoding: "utf8",
3238+
env: {
3239+
...process.env,
3240+
OPENAI_API_KEY: "",
3241+
OPENCLAW_OPENAI_CHAT_TOOLS_TIMEOUT_SECONDS: "180s",
3242+
},
3243+
});
3244+
3245+
expect(result.status).toBe(2);
3246+
expect(result.stderr).toContain("invalid OPENCLAW_OPENAI_CHAT_TOOLS_TIMEOUT_SECONDS: 180s");
3247+
expect(result.stderr).not.toContain("OPENAI_API_KEY was not available");
3248+
});
3249+
32353250
it("forwards every kitchen-sink RPC runtime env knob into Docker", () => {
32363251
const runner = readFileSync(KITCHEN_SINK_RPC_DOCKER_E2E_PATH, "utf8");
32373252
const walk = readFileSync("scripts/e2e/kitchen-sink-rpc-walk.mjs", "utf8");

0 commit comments

Comments
 (0)