From 4d3411349b317cbd77e994ae65eb23637e02ce90 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 2 Jun 2026 09:21:17 +0200 Subject: [PATCH] test(gateway): reuse deferred helper in lane tests --- src/gateway/server-lanes.test.ts | 24 ++++++--------------- src/gateway/server-restart-deferral.test.ts | 14 +----------- src/gateway/test-helpers.deferred.ts | 6 +++--- 3 files changed, 10 insertions(+), 34 deletions(-) diff --git a/src/gateway/server-lanes.test.ts b/src/gateway/server-lanes.test.ts index bd48e2dd486..8c4c8995b44 100644 --- a/src/gateway/server-lanes.test.ts +++ b/src/gateway/server-lanes.test.ts @@ -4,19 +4,7 @@ import type { OpenClawConfig } from "../config/types.openclaw.js"; import { enqueueCommandInLane, resetCommandQueueStateForTest } from "../process/command-queue.js"; import { CommandLane } from "../process/lanes.js"; import { applyGatewayLaneConcurrency } from "./server-lanes.js"; - -function createDeferred() { - let resolve: ((value: T | PromiseLike) => void) | undefined; - let reject: ((reason?: unknown) => void) | undefined; - const promise = new Promise((res, rej) => { - resolve = res; - reject = rej; - }); - if (!resolve || !reject) { - throw new Error("Expected deferred callbacks to be initialized"); - } - return { promise, resolve, reject }; -} +import { createDeferred } from "./test-helpers.deferred.js"; describe("applyGatewayLaneConcurrency", () => { afterEach(() => { @@ -28,8 +16,8 @@ describe("applyGatewayLaneConcurrency", () => { let activeRuns = 0; let peakActiveRuns = 0; - const allRunsStarted = createDeferred(); - const releaseRuns = createDeferred(); + const allRunsStarted = createDeferred(); + const releaseRuns = createDeferred(); const run = async () => { activeRuns += 1; @@ -66,8 +54,8 @@ describe("applyGatewayLaneConcurrency", () => { let activeRuns = 0; let peakActiveRuns = 0; - const bothRunsStarted = createDeferred(); - const releaseRuns = createDeferred(); + const bothRunsStarted = createDeferred(); + const releaseRuns = createDeferred(); const run = async () => { activeRuns += 1; @@ -104,7 +92,7 @@ describe("applyGatewayLaneConcurrency", () => { applyGatewayLaneConcurrency({ cron: { maxConcurrentRuns: 2 } } as OpenClawConfig); let startedRuns = 0; - const releaseRuns = createDeferred(); + const releaseRuns = createDeferred(); const run = async () => { startedRuns += 1; await releaseRuns.promise; diff --git a/src/gateway/server-restart-deferral.test.ts b/src/gateway/server-restart-deferral.test.ts index c541e156d2c..b2082286263 100644 --- a/src/gateway/server-restart-deferral.test.ts +++ b/src/gateway/server-restart-deferral.test.ts @@ -5,6 +5,7 @@ import { } from "../auto-reply/reply/dispatcher-registry.js"; import { createReplyDispatcher } from "../auto-reply/reply/reply-dispatcher.js"; import { getTotalQueueSize, resetCommandQueueStateForTest } from "../process/command-queue.js"; +import { createDeferred } from "./test-helpers.deferred.js"; async function flushMicrotasks(count = 10): Promise { for (let i = 0; i < count; i += 1) { @@ -12,19 +13,6 @@ async function flushMicrotasks(count = 10): Promise { } } -function createDeferred() { - let resolve: ((value: T | PromiseLike) => void) | undefined; - let reject: ((reason?: unknown) => void) | undefined; - const promise = new Promise((res, rej) => { - resolve = res; - reject = rej; - }); - if (!resolve || !reject) { - throw new Error("Expected deferred callbacks to be initialized"); - } - return { promise, resolve, reject }; -} - describe("gateway restart deferral", () => { let replyErrors: string[] = []; diff --git a/src/gateway/test-helpers.deferred.ts b/src/gateway/test-helpers.deferred.ts index 468b41d6421..87550941b69 100644 --- a/src/gateway/test-helpers.deferred.ts +++ b/src/gateway/test-helpers.deferred.ts @@ -1,6 +1,6 @@ -export function createDeferred() { - let resolve: ((value: T) => void) | undefined; - let reject: ((error: unknown) => void) | undefined; +export function createDeferred() { + let resolve: ((value: T | PromiseLike) => void) | undefined; + let reject: ((reason?: unknown) => void) | undefined; const promise = new Promise((resolvePromise, rejectPromise) => { resolve = resolvePromise; reject = rejectPromise;