




























@@ -2,6 +2,28 @@ import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-entry";
22import { beforeEach, describe, expect, it, vi } from "vitest";
3344const buildVllmProviderMock = vi.hoisted(() => vi.fn());
5+type DiscoverOpenAICompatibleSelfHostedProviderParams = {
6+buildProvider: (args: { apiKey?: string }) => Promise<Record<string, unknown>>;
7+ctx: {
8+resolveProviderApiKey: () => {
9+apiKey?: string;
10+};
11+resolveProviderAuth: () => {
12+discoveryApiKey?: string;
13+};
14+};
15+providerId: string;
16+};
17+const discoverOpenAICompatibleSelfHostedProviderMock = vi.hoisted(() =>
18+vi.fn(async (params: DiscoverOpenAICompatibleSelfHostedProviderParams) => ({
19+provider: {
20+ ...(await params.buildProvider({
21+apiKey: params.ctx.resolveProviderAuth().discoveryApiKey,
22+})),
23+apiKey: params.ctx.resolveProviderApiKey().apiKey,
24+},
25+})),
26+);
527628vi.mock("./api.js", () => ({
729VLLM_DEFAULT_API_KEY_ENV_VAR: "VLLM_API_KEY",
@@ -11,6 +33,12 @@ vi.mock("./api.js", () => ({
1133buildVllmProvider: (...args: unknown[]) => buildVllmProviderMock(...args),
1234}));
133536+vi.mock("openclaw/plugin-sdk/provider-setup", () => ({
37+discoverOpenAICompatibleSelfHostedProvider: (
38+params: DiscoverOpenAICompatibleSelfHostedProviderParams,
39+) => discoverOpenAICompatibleSelfHostedProviderMock(params),
40+}));
41+1442type ProviderDiscoveryRun = (ctx: {
1543config: Record<string, unknown>;
1644env: NodeJS.ProcessEnv;
@@ -37,6 +65,7 @@ type RegisteredVllmProvider = {
3765describe("vllm provider discovery contract", () => {
3866beforeEach(() => {
3967buildVllmProviderMock.mockReset();
68+discoverOpenAICompatibleSelfHostedProviderMock.mockClear();
4069});
41704271it("keeps self-hosted discovery provider-owned", async () => {
@@ -86,5 +115,11 @@ describe("vllm provider discovery contract", () => {
86115expect(buildVllmProviderMock).toHaveBeenCalledWith({
87116apiKey: "env-vllm-key",
88117});
118+expect(discoverOpenAICompatibleSelfHostedProviderMock).toHaveBeenCalledWith(
119+expect.objectContaining({
120+providerId: "vllm",
121+buildProvider: expect.any(Function),
122+}),
123+);
89124});
90125});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。