diff --git a/src/gateway/exec-approval-ios-push.test.ts b/src/gateway/exec-approval-ios-push.test.ts index 4ae4bd9c006..bd9c147d59d 100644 --- a/src/gateway/exec-approval-ios-push.test.ts +++ b/src/gateway/exec-approval-ios-push.test.ts @@ -1,5 +1,6 @@ import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import type { ExecApprovalRequest, ExecApprovalResolved } from "../infra/exec-approvals.js"; +import { createDeferred } from "./test/deferred.js"; const listDevicePairingMock = vi.fn(); const loadApnsRegistrationMock = vi.fn(); @@ -10,25 +11,6 @@ const sendApnsExecApprovalAlertMock = vi.fn(); const sendApnsExecApprovalResolvedWakeMock = vi.fn(); let createExecApprovalIosPushDelivery: typeof import("./exec-approval-ios-push.js").createExecApprovalIosPushDelivery; -type Deferred = { - promise: Promise; - resolve: (value: T) => void; - reject: (error: unknown) => void; -}; - -function createDeferred(): Deferred { - 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 apnsRegistration(nodeId = "ios-device-1") { return { nodeId, diff --git a/src/gateway/server-methods/models.test.ts b/src/gateway/server-methods/models.test.ts index f44743ef0cf..bbec995efa1 100644 --- a/src/gateway/server-methods/models.test.ts +++ b/src/gateway/server-methods/models.test.ts @@ -3,27 +3,9 @@ import { ErrorCodes } from "../../../packages/gateway-protocol/src/index.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { expectGatewayErrorResponse } from "./gateway-response.test-helpers.js"; import { modelsHandlers } from "./models.js"; +import { createDeferred } from "../test/deferred.js"; import type { RespondFn } from "./types.js"; -type Deferred = { - promise: Promise; - resolve: (value: T) => void; - reject: (error: unknown) => void; -}; - -function createDeferred(): Deferred { - 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 592d80e64a9..d28579c42f5 100644 --- a/src/gateway/server-model-catalog.test.ts +++ b/src/gateway/server-model-catalog.test.ts @@ -6,29 +6,12 @@ import { loadGatewayModelCatalog, markGatewayModelCatalogStaleForReload, } from "./server-model-catalog.js"; +import { createDeferred } from "./test/deferred.js"; -type Deferred = { - promise: Promise; - resolve: (value: T) => void; - reject: (error: unknown) => void; -}; type LoadModelCatalogForTest = NonNullable< NonNullable[0]>["loadModelCatalog"] >; -function createDeferred(): Deferred { - 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/deferred.ts b/src/gateway/test/deferred.ts new file mode 100644 index 00000000000..045aba08094 --- /dev/null +++ b/src/gateway/test/deferred.ts @@ -0,0 +1,18 @@ +export type Deferred = { + promise: Promise; + resolve: (value: T) => void; + reject: (error: unknown) => void; +}; + +export function createDeferred(): Deferred { + 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 }; +}