test: tighten arcee provider assertions

This commit is contained in:
Peter Steinberger
2026-05-11 01:52:51 +01:00
parent 60214e3963
commit b2a6360a01

View File

@@ -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?.({