import fs from "node:fs"; import { registerSingleProviderPlugin, resolveProviderPluginChoice, } from "openclaw/plugin-sdk/plugin-test-runtime"; import { describe, expect, it } from "vitest"; import plugin from "./index.js"; type ComfyManifest = { providerAuthChoices?: Array<{ choiceId?: string; method?: string; provider?: string }>; }; function readManifest(): ComfyManifest { return JSON.parse( fs.readFileSync(new URL("./openclaw.plugin.json", import.meta.url), "utf8"), ) as ComfyManifest; } describe("comfy provider plugin", () => { it("registers cloud API-key auth metadata", async () => { const provider = await registerSingleProviderPlugin(plugin); expect(provider.id).toBe("comfy"); expect(provider.envVars).toEqual(["COMFY_API_KEY", "COMFY_CLOUD_API_KEY"]); expect(provider.auth?.map((method) => method.id)).toEqual(["cloud-api-key"]); const choice = resolveProviderPluginChoice({ providers: [provider], choice: "comfy-cloud-api-key", }); expect(choice?.provider.id).toBe("comfy"); expect(choice?.method.id).toBe("cloud-api-key"); expect(readManifest().providerAuthChoices).toEqual( expect.arrayContaining([ expect.objectContaining({ provider: "comfy", method: "cloud-api-key", choiceId: "comfy-cloud-api-key", }), ]), ); }); });