
























@@ -3,6 +3,7 @@ import { buildXaiImageGenerationProvider } from "./image-generation-provider.js"
3344const {
55 resolveApiKeyForProviderMock,
6+ isProviderApiKeyConfiguredMock,
67 postJsonRequestMock,
78 postMultipartRequestMock,
89 assertOkOrThrowHttpErrorMock,
@@ -12,6 +13,7 @@ const {
1213 sanitizeConfiguredModelProviderRequestMock,
1314} = vi.hoisted(() => ({
1415resolveApiKeyForProviderMock: vi.fn(async () => ({ apiKey: "xai-key" })),
16+isProviderApiKeyConfiguredMock: vi.fn(() => true),
1517postJsonRequestMock: vi.fn(),
1618postMultipartRequestMock: vi.fn(),
1719assertOkOrThrowHttpErrorMock: vi.fn(async () => {}),
@@ -35,6 +37,10 @@ vi.mock("openclaw/plugin-sdk/provider-auth-runtime", () => ({
3537resolveApiKeyForProvider: resolveApiKeyForProviderMock,
3638}));
373940+vi.mock("openclaw/plugin-sdk/provider-auth", () => ({
41+isProviderApiKeyConfigured: isProviderApiKeyConfiguredMock,
42+}));
43+3844vi.mock("openclaw/plugin-sdk/provider-http", () => ({
3945assertOkOrThrowHttpError: assertOkOrThrowHttpErrorMock,
4046createProviderOperationDeadline: createProviderOperationDeadlineMock,
@@ -55,6 +61,7 @@ vi.mock("openclaw/plugin-sdk/text-runtime", () => ({
5561describe("xai image generation provider", () => {
5662afterEach(() => {
5763resolveApiKeyForProviderMock.mockClear();
64+isProviderApiKeyConfiguredMock.mockClear();
5865postJsonRequestMock.mockReset();
5966assertOkOrThrowHttpErrorMock.mockClear();
6067resolveProviderHttpRequestConfigMock.mockClear();
@@ -82,8 +89,15 @@ describe("xai image generation provider", () => {
8289]);
8390expect(provider.capabilities.edit.enabled).toBe(true);
8491expect(provider.capabilities.edit.maxInputImages).toBe(5);
85-expect(provider.isConfigured).toEqual(expect.any(Function));
86-expect(provider.generateImage).toEqual(expect.any(Function));
92+const isConfigured = provider.isConfigured;
93+if (!isConfigured) {
94+throw new Error("expected XAI image provider config predicate");
95+}
96+expect(isConfigured({ agentDir: "/tmp/openclaw-xai-test" })).toBe(true);
97+expect(isProviderApiKeyConfiguredMock).toHaveBeenCalledWith({
98+provider: "xai",
99+agentDir: "/tmp/openclaw-xai-test",
100+});
87101});
8810289103it("uses main provider URL and resolves auth for generation", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。