test(gateway): share deferred helper

This commit is contained in:
Vincent Koc
2026-06-02 09:12:31 +02:00
parent 06f973dd4f
commit 64d01ff8a8
4 changed files with 15 additions and 39 deletions

View File

@@ -1,18 +1,6 @@
import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
import type { ExecApprovalRequest, ExecApprovalResolved } from "../infra/exec-approvals.js";
function createDeferred<T>() {
let resolve: ((value: T) => void) | undefined;
let reject: ((error: unknown) => void) | undefined;
const promise = new Promise<T>((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();

View File

@@ -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<T>() {
let resolve: ((value: T) => void) | undefined;
let reject: ((error: unknown) => void) | undefined;
const promise = new Promise<T>((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<typeof vi.fn>;

View File

@@ -6,24 +6,12 @@ import {
loadGatewayModelCatalog,
markGatewayModelCatalogStaleForReload,
} from "./server-model-catalog.js";
import { createDeferred } from "./test-helpers.deferred.js";
type LoadModelCatalogForTest = NonNullable<
NonNullable<Parameters<typeof loadGatewayModelCatalog>[0]>["loadModelCatalog"]
>;
function createDeferred<T>() {
let resolve: ((value: T) => void) | undefined;
let reject: ((error: unknown) => void) | undefined;
const promise = new Promise<T>((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;
}

View File

@@ -0,0 +1,12 @@
export function createDeferred<T>() {
let resolve: ((value: T) => void) | undefined;
let reject: ((error: unknown) => void) | undefined;
const promise = new Promise<T>((resolvePromise, rejectPromise) => {
resolve = resolvePromise;
reject = rejectPromise;
});
if (!resolve || !reject) {
throw new Error("Expected deferred callbacks to be initialized");
}
return { promise, resolve, reject };
}