diff --git a/extensions/arcee/index.test.ts b/extensions/arcee/index.test.ts index c29d6937873..1a68efb597d 100644 --- a/extensions/arcee/index.test.ts +++ b/extensions/arcee/index.test.ts @@ -20,19 +20,21 @@ describe("arcee provider plugin", () => { providers: [provider], choice: "arceeai-api-key", }); - expect(directChoice).toMatchObject({ - provider: { id: "arcee" }, - method: { id: "arcee-platform" }, - }); + if (!directChoice) { + throw new Error("expected direct Arcee auth choice"); + } + expect(directChoice.provider.id).toBe("arcee"); + expect(directChoice.method.id).toBe("arcee-platform"); const orChoice = resolveProviderPluginChoice({ providers: [provider], choice: "arceeai-openrouter", }); - expect(orChoice).toMatchObject({ - provider: { id: "arcee" }, - method: { id: "openrouter" }, - }); + if (!orChoice) { + throw new Error("expected OpenRouter Arcee auth choice"); + } + expect(orChoice.provider.id).toBe("arcee"); + expect(orChoice.method.id).toBe("openrouter"); }); it("stores the OpenRouter onboarding path under the OpenRouter auth profile", async () => { @@ -58,14 +60,12 @@ describe("arcee provider plugin", () => { toApiKeyCredential: () => null, } as never); - expect(config?.auth?.profiles?.["openrouter:default"]).toMatchObject({ - provider: "openrouter", - mode: "api_key", - }); - expect(config?.models?.providers?.arcee).toMatchObject({ - baseUrl: "https://openrouter.ai/api/v1", - api: "openai-completions", - }); + const openRouterProfile = config?.auth?.profiles?.["openrouter:default"]; + expect(openRouterProfile?.provider).toBe("openrouter"); + expect(openRouterProfile?.mode).toBe("api_key"); + const arceeConfig = config?.models?.providers?.arcee; + expect(arceeConfig?.baseUrl).toBe("https://openrouter.ai/api/v1"); + expect(arceeConfig?.api).toBe("openai-completions"); expect(config?.models?.providers?.arcee?.models?.map((model) => model.id)).toEqual([ "arcee/trinity-mini", "arcee/trinity-large-preview", @@ -94,12 +94,11 @@ describe("arcee provider plugin", () => { "trinity-large-preview", "trinity-large-thinking", ]); - expect( - catalogProvider.models?.find((model) => model.id === "trinity-large-thinking")?.compat, - ).toMatchObject({ - supportsTools: false, - supportsReasoningEffort: false, - }); + const thinkingCompat = catalogProvider.models?.find( + (model) => model.id === "trinity-large-thinking", + )?.compat; + expect(thinkingCompat?.supportsTools).toBe(false); + expect(thinkingCompat?.supportsReasoningEffort).toBe(false); }); it("builds the OpenRouter-backed Arcee AI model catalog", async () => { @@ -120,31 +119,27 @@ describe("arcee provider plugin", () => { "arcee/trinity-large-preview", "arcee/trinity-large-thinking", ]); - expect( - catalogProvider.models?.find((model) => model.id === "arcee/trinity-large-thinking")?.compat, - ).toMatchObject({ - supportsTools: false, - supportsReasoningEffort: false, - }); + const thinkingCompat = catalogProvider.models?.find( + (model) => model.id === "arcee/trinity-large-thinking", + )?.compat; + expect(thinkingCompat?.supportsTools).toBe(false); + expect(thinkingCompat?.supportsReasoningEffort).toBe(false); }); it("normalizes Arcee OpenRouter models to vendor-prefixed runtime ids", async () => { const provider = await registerSingleProviderPlugin(arceePlugin); - expect( - provider.normalizeResolvedModel?.({ - modelId: "arcee/trinity-large-thinking", - model: { - provider: "arcee", - id: "trinity-large-thinking", - name: "Trinity Large Thinking", - api: "openai-completions", - baseUrl: "https://openrouter.ai/api/v1", - }, - } as never), - ).toMatchObject({ - id: "arcee/trinity-large-thinking", - }); + const openRouterModel = provider.normalizeResolvedModel?.({ + modelId: "arcee/trinity-large-thinking", + model: { + provider: "arcee", + id: "trinity-large-thinking", + name: "Trinity Large Thinking", + api: "openai-completions", + baseUrl: "https://openrouter.ai/api/v1", + }, + } as never); + expect(openRouterModel?.id).toBe("arcee/trinity-large-thinking"); expect( provider.normalizeResolvedModel?.({ @@ -163,34 +158,28 @@ describe("arcee provider plugin", () => { it("canonicalizes stale OpenRouter /v1 config and transport metadata", async () => { const provider = await registerSingleProviderPlugin(arceePlugin); - expect( - provider.normalizeConfig?.({ - provider: "arcee", - providerConfig: { - api: "openai-completions", - baseUrl: "https://openrouter.ai/v1/", - models: [], - }, - } as never), - ).toMatchObject({ - baseUrl: "https://openrouter.ai/api/v1", - }); + const normalizedConfig = provider.normalizeConfig?.({ + provider: "arcee", + providerConfig: { + api: "openai-completions", + baseUrl: "https://openrouter.ai/v1/", + models: [], + }, + } as never); + expect(normalizedConfig?.baseUrl).toBe("https://openrouter.ai/api/v1"); - expect( - provider.normalizeResolvedModel?.({ - modelId: "arcee/trinity-large-thinking", - model: { - provider: "arcee", - id: "trinity-large-thinking", - name: "Trinity Large Thinking", - api: "openai-completions", - baseUrl: "https://openrouter.ai/v1", - }, - } as never), - ).toMatchObject({ - id: "arcee/trinity-large-thinking", - baseUrl: "https://openrouter.ai/api/v1", - }); + const normalizedModel = provider.normalizeResolvedModel?.({ + modelId: "arcee/trinity-large-thinking", + model: { + provider: "arcee", + id: "trinity-large-thinking", + name: "Trinity Large Thinking", + api: "openai-completions", + baseUrl: "https://openrouter.ai/v1", + }, + } as never); + expect(normalizedModel?.id).toBe("arcee/trinity-large-thinking"); + expect(normalizedModel?.baseUrl).toBe("https://openrouter.ai/api/v1"); expect( provider.normalizeTransport?.({