From 64d01ff8a854a930ebfafc231e00325c4223207f Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Tue, 2 Jun 2026 09:12:31 +0200 Subject: [PATCH] test(gateway): share deferred helper --- src/gateway/exec-approval-ios-push.test.ts | 14 +------------- src/gateway/server-methods/models.test.ts | 14 +------------- src/gateway/server-model-catalog.test.ts | 14 +------------- src/gateway/test-helpers.deferred.ts | 12 ++++++++++++ 4 files changed, 15 insertions(+), 39 deletions(-) create mode 100644 src/gateway/test-helpers.deferred.ts diff --git a/src/gateway/exec-approval-ios-push.test.ts b/src/gateway/exec-approval-ios-push.test.ts index 9f4600e587f..5640cdd458c 100644 --- a/src/gateway/exec-approval-ios-push.test.ts +++ b/src/gateway/exec-approval-ios-push.test.ts @@ -1,18 +1,6 @@ import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import type { ExecApprovalRequest, ExecApprovalResolved } from "../infra/exec-approvals.js"; - -function createDeferred() { - let resolve: ((value: T) => void) | undefined; - let reject: ((error: unknown) => void) | undefined; - const promise = new Promise((resolvePromise, rejectPromise) => { - resolve = resolvePromise; - reject = rejectPromise; - }); - if (!resolve || !reject) { - throw new Error("Expected deferred callbacks to be initialized"); - } - return { promise, resolve, reject }; -} +import { createDeferred } from "./test-helpers.deferred.js"; const listDevicePairingMock = vi.fn(); const loadApnsRegistrationMock = vi.fn(); diff --git a/src/gateway/server-methods/models.test.ts b/src/gateway/server-methods/models.test.ts index 25d4bbe2492..083b895fac1 100644 --- a/src/gateway/server-methods/models.test.ts +++ b/src/gateway/server-methods/models.test.ts @@ -1,23 +1,11 @@ import { describe, expect, it, vi } from "vitest"; import { ErrorCodes } from "../../../packages/gateway-protocol/src/index.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; +import { createDeferred } from "../test-helpers.deferred.js"; import { expectGatewayErrorResponse } from "./gateway-response.test-helpers.js"; import { modelsHandlers } from "./models.js"; import type { RespondFn } from "./types.js"; -function createDeferred() { - let resolve: ((value: T) => void) | undefined; - let reject: ((error: unknown) => void) | undefined; - const promise = new Promise((resolvePromise, rejectPromise) => { - resolve = resolvePromise; - reject = rejectPromise; - }); - if (!resolve || !reject) { - throw new Error("Expected deferred callbacks to be initialized"); - } - return { promise, resolve, reject }; -} - function requestModelsList(params: { view: "configured" | "all"; respond?: ReturnType; diff --git a/src/gateway/server-model-catalog.test.ts b/src/gateway/server-model-catalog.test.ts index 8ea0c01c37b..20fbfb86728 100644 --- a/src/gateway/server-model-catalog.test.ts +++ b/src/gateway/server-model-catalog.test.ts @@ -6,24 +6,12 @@ import { loadGatewayModelCatalog, markGatewayModelCatalogStaleForReload, } from "./server-model-catalog.js"; +import { createDeferred } from "./test-helpers.deferred.js"; type LoadModelCatalogForTest = NonNullable< NonNullable[0]>["loadModelCatalog"] >; -function createDeferred() { - let resolve: ((value: T) => void) | undefined; - let reject: ((error: unknown) => void) | undefined; - const promise = new Promise((resolvePromise, rejectPromise) => { - resolve = resolvePromise; - reject = rejectPromise; - }); - if (!resolve || !reject) { - throw new Error("Expected deferred callbacks to be initialized"); - } - return { promise, resolve, reject }; -} - function model(id: string): GatewayModelChoice { return { id, name: id, provider: "openai" } as GatewayModelChoice; } diff --git a/src/gateway/test-helpers.deferred.ts b/src/gateway/test-helpers.deferred.ts new file mode 100644 index 00000000000..468b41d6421 --- /dev/null +++ b/src/gateway/test-helpers.deferred.ts @@ -0,0 +1,12 @@ +export function createDeferred() { + let resolve: ((value: T) => void) | undefined; + let reject: ((error: unknown) => void) | undefined; + const promise = new Promise((resolvePromise, rejectPromise) => { + resolve = resolvePromise; + reject = rejectPromise; + }); + if (!resolve || !reject) { + throw new Error("Expected deferred callbacks to be initialized"); + } + return { promise, resolve, reject }; +}