Files
openclaw/extensions/minimax/provider-http.test-helpers.ts
2026-04-08 16:13:37 +01:00

53 lines
2.0 KiB
TypeScript

import type { resolveProviderHttpRequestConfig } from "openclaw/plugin-sdk/provider-http";
import { afterEach, vi } from "vitest";
type ResolveProviderHttpRequestConfigParams = Parameters<
typeof resolveProviderHttpRequestConfig
>[0];
const minimaxProviderHttpMocks = vi.hoisted(() => ({
resolveApiKeyForProviderMock: vi.fn(async () => ({ apiKey: "provider-key" })),
postJsonRequestMock: vi.fn(),
fetchWithTimeoutMock: vi.fn(),
assertOkOrThrowHttpErrorMock: vi.fn(async () => {}),
resolveProviderHttpRequestConfigMock: vi.fn((params: ResolveProviderHttpRequestConfigParams) => ({
baseUrl: params.baseUrl ?? params.defaultBaseUrl,
allowPrivateNetwork: false,
headers: new Headers(params.defaultHeaders),
dispatcherPolicy: undefined,
})),
}));
vi.mock("openclaw/plugin-sdk/provider-auth-runtime", () => ({
resolveApiKeyForProvider: minimaxProviderHttpMocks.resolveApiKeyForProviderMock,
}));
vi.mock("openclaw/plugin-sdk/provider-http", () => ({
assertOkOrThrowHttpError: minimaxProviderHttpMocks.assertOkOrThrowHttpErrorMock,
fetchWithTimeout: minimaxProviderHttpMocks.fetchWithTimeoutMock,
postJsonRequest: minimaxProviderHttpMocks.postJsonRequestMock,
resolveProviderHttpRequestConfig: minimaxProviderHttpMocks.resolveProviderHttpRequestConfigMock,
}));
export function getMinimaxProviderHttpMocks() {
return minimaxProviderHttpMocks;
}
export function installMinimaxProviderHttpMockCleanup(): void {
afterEach(() => {
minimaxProviderHttpMocks.resolveApiKeyForProviderMock.mockClear();
minimaxProviderHttpMocks.postJsonRequestMock.mockReset();
minimaxProviderHttpMocks.fetchWithTimeoutMock.mockReset();
minimaxProviderHttpMocks.assertOkOrThrowHttpErrorMock.mockClear();
minimaxProviderHttpMocks.resolveProviderHttpRequestConfigMock.mockClear();
});
}
export function loadMinimaxMusicGenerationProviderModule() {
return import("./music-generation-provider.js");
}
export function loadMinimaxVideoGenerationProviderModule() {
return import("./video-generation-provider.js");
}