// Novita tests cover index plugin behavior. import { registerSingleProviderPlugin } from "openclaw/plugin-sdk/plugin-test-runtime"; import { describe, expect, it } from "vitest"; import plugin from "./index.js"; function requireCatalogProvider( result: | { provider: { baseUrl?: string; models?: Array<{ id: string }> } } | { providers: Record } | null | undefined, ): { baseUrl?: string; models?: Array<{ id: string }> } { if (!result || !("provider" in result)) { throw new Error("single provider catalog result missing"); } return result.provider; } describe("novita provider plugin", () => { it("registers NovitaAI as an OpenAI-compatible provider", async () => { const provider = await registerSingleProviderPlugin(plugin); expect(provider.id).toBe("novita"); expect(provider.aliases).toEqual(["novita-ai", "novitaai"]); expect(provider.envVars).toEqual(["NOVITA_API_KEY"]); expect(provider.auth?.map((method) => method.id)).toEqual(["api-key"]); const result = await provider.staticCatalog?.run({ config: {}, env: {}, resolveProviderApiKey: () => ({}), } as never); const catalogProvider = requireCatalogProvider(result); expect(catalogProvider.baseUrl).toBe("https://api.novita.ai/openai/v1"); expect(catalogProvider.models?.map((model) => model.id)).toContain("deepseek/deepseek-v3-0324"); }); });