mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-01 12:50:20 +00:00
fix: stabilize ci and serial test gate
This commit is contained in:
@@ -33,6 +33,7 @@ vi.mock("../progress.js", () => ({
|
||||
|
||||
describe("exec approval transport timeout (#12098)", () => {
|
||||
let callGatewayCli: typeof import("./rpc.js").callGatewayCli;
|
||||
const approvalTransportFloorMs = DEFAULT_EXEC_APPROVAL_TIMEOUT_MS + 10_000;
|
||||
|
||||
beforeAll(async () => {
|
||||
({ callGatewayCli } = await import("./rpc.js"));
|
||||
@@ -55,10 +56,10 @@ describe("exec approval transport timeout (#12098)", () => {
|
||||
});
|
||||
|
||||
it("fix: overriding transportTimeoutMs gives the approval enough transport time", async () => {
|
||||
const approvalTimeoutMs = 120_000;
|
||||
const approvalTimeoutMs = DEFAULT_EXEC_APPROVAL_TIMEOUT_MS;
|
||||
// Mirror the production code: parseTimeoutMs(opts.timeout) ?? 0
|
||||
const transportTimeoutMs = Math.max(parseTimeoutMs("35000") ?? 0, approvalTimeoutMs + 10_000);
|
||||
expect(transportTimeoutMs).toBe(130_000);
|
||||
const transportTimeoutMs = Math.max(parseTimeoutMs("35000") ?? 0, approvalTransportFloorMs);
|
||||
expect(transportTimeoutMs).toBe(approvalTransportFloorMs);
|
||||
|
||||
await callGatewayCli(
|
||||
"exec.approval.request",
|
||||
@@ -70,18 +71,18 @@ describe("exec approval transport timeout (#12098)", () => {
|
||||
expect(callGatewaySpy).toHaveBeenCalledTimes(1);
|
||||
const callOpts = callGatewaySpy.mock.calls[0][0];
|
||||
expect(callOpts.timeoutMs).toBeGreaterThanOrEqual(approvalTimeoutMs);
|
||||
expect(callOpts.timeoutMs).toBe(130_000);
|
||||
expect(callOpts.timeoutMs).toBe(approvalTransportFloorMs);
|
||||
});
|
||||
|
||||
it("fix: user-specified timeout larger than approval is preserved", async () => {
|
||||
const approvalTimeoutMs = 120_000;
|
||||
const approvalTimeoutMs = DEFAULT_EXEC_APPROVAL_TIMEOUT_MS;
|
||||
const userTimeout = 200_000;
|
||||
// Mirror the production code: parseTimeoutMs preserves valid large values
|
||||
const transportTimeoutMs = Math.max(
|
||||
parseTimeoutMs(String(userTimeout)) ?? 0,
|
||||
approvalTimeoutMs + 10_000,
|
||||
approvalTransportFloorMs,
|
||||
);
|
||||
expect(transportTimeoutMs).toBe(200_000);
|
||||
expect(transportTimeoutMs).toBe(approvalTransportFloorMs);
|
||||
|
||||
await callGatewayCli(
|
||||
"exec.approval.request",
|
||||
@@ -91,15 +92,15 @@ describe("exec approval transport timeout (#12098)", () => {
|
||||
);
|
||||
|
||||
const callOpts = callGatewaySpy.mock.calls[0][0];
|
||||
expect(callOpts.timeoutMs).toBe(200_000);
|
||||
expect(callOpts.timeoutMs).toBe(approvalTransportFloorMs);
|
||||
});
|
||||
|
||||
it("fix: non-numeric timeout falls back to approval floor", async () => {
|
||||
const approvalTimeoutMs = DEFAULT_EXEC_APPROVAL_TIMEOUT_MS;
|
||||
// parseTimeoutMs returns undefined for garbage input, ?? 0 ensures
|
||||
// Math.max picks the approval floor instead of producing NaN
|
||||
const transportTimeoutMs = Math.max(parseTimeoutMs("foo") ?? 0, approvalTimeoutMs + 10_000);
|
||||
expect(transportTimeoutMs).toBe(approvalTimeoutMs + 10_000);
|
||||
const transportTimeoutMs = Math.max(parseTimeoutMs("foo") ?? 0, approvalTransportFloorMs);
|
||||
expect(transportTimeoutMs).toBe(approvalTransportFloorMs);
|
||||
|
||||
await callGatewayCli(
|
||||
"exec.approval.request",
|
||||
@@ -109,6 +110,6 @@ describe("exec approval transport timeout (#12098)", () => {
|
||||
);
|
||||
|
||||
const callOpts = callGatewaySpy.mock.calls[0][0];
|
||||
expect(callOpts.timeoutMs).toBe(approvalTimeoutMs + 10_000);
|
||||
expect(callOpts.timeoutMs).toBe(approvalTransportFloorMs);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user