mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 13:10:43 +00:00
perf: mock vllm provider setup contract
This commit is contained in:
@@ -2,6 +2,28 @@ import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-entry";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const buildVllmProviderMock = vi.hoisted(() => vi.fn());
|
||||
type DiscoverOpenAICompatibleSelfHostedProviderParams = {
|
||||
buildProvider: (args: { apiKey?: string }) => Promise<Record<string, unknown>>;
|
||||
ctx: {
|
||||
resolveProviderApiKey: () => {
|
||||
apiKey?: string;
|
||||
};
|
||||
resolveProviderAuth: () => {
|
||||
discoveryApiKey?: string;
|
||||
};
|
||||
};
|
||||
providerId: string;
|
||||
};
|
||||
const discoverOpenAICompatibleSelfHostedProviderMock = vi.hoisted(() =>
|
||||
vi.fn(async (params: DiscoverOpenAICompatibleSelfHostedProviderParams) => ({
|
||||
provider: {
|
||||
...(await params.buildProvider({
|
||||
apiKey: params.ctx.resolveProviderAuth().discoveryApiKey,
|
||||
})),
|
||||
apiKey: params.ctx.resolveProviderApiKey().apiKey,
|
||||
},
|
||||
})),
|
||||
);
|
||||
|
||||
vi.mock("./api.js", () => ({
|
||||
VLLM_DEFAULT_API_KEY_ENV_VAR: "VLLM_API_KEY",
|
||||
@@ -11,6 +33,12 @@ vi.mock("./api.js", () => ({
|
||||
buildVllmProvider: (...args: unknown[]) => buildVllmProviderMock(...args),
|
||||
}));
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/provider-setup", () => ({
|
||||
discoverOpenAICompatibleSelfHostedProvider: (
|
||||
params: DiscoverOpenAICompatibleSelfHostedProviderParams,
|
||||
) => discoverOpenAICompatibleSelfHostedProviderMock(params),
|
||||
}));
|
||||
|
||||
type ProviderDiscoveryRun = (ctx: {
|
||||
config: Record<string, unknown>;
|
||||
env: NodeJS.ProcessEnv;
|
||||
@@ -37,6 +65,7 @@ type RegisteredVllmProvider = {
|
||||
describe("vllm provider discovery contract", () => {
|
||||
beforeEach(() => {
|
||||
buildVllmProviderMock.mockReset();
|
||||
discoverOpenAICompatibleSelfHostedProviderMock.mockClear();
|
||||
});
|
||||
|
||||
it("keeps self-hosted discovery provider-owned", async () => {
|
||||
@@ -86,5 +115,11 @@ describe("vllm provider discovery contract", () => {
|
||||
expect(buildVllmProviderMock).toHaveBeenCalledWith({
|
||||
apiKey: "env-vllm-key",
|
||||
});
|
||||
expect(discoverOpenAICompatibleSelfHostedProviderMock).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
providerId: "vllm",
|
||||
buildProvider: expect.any(Function),
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user