mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 18:20:44 +00:00
test: share provider catalog fixtures
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import type { ModelRegistry } from "@mariozechner/pi-coding-agent";
|
||||
import type {
|
||||
ProviderResolveDynamicModelContext,
|
||||
ProviderRuntimeModel,
|
||||
} from "openclaw/plugin-sdk/plugin-entry";
|
||||
import type { ProviderRuntimeModel } from "openclaw/plugin-sdk/plugin-entry";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { resolveProviderPluginChoice } from "../../src/plugins/provider-auth-choice.runtime.js";
|
||||
import { registerSingleProviderPlugin } from "../../test/helpers/plugins/plugin-registration.js";
|
||||
import {
|
||||
createProviderDynamicModelContext,
|
||||
runSingleProviderCatalog,
|
||||
} from "../test-support/provider-model-test-helpers.js";
|
||||
import fireworksPlugin from "./index.js";
|
||||
import {
|
||||
FIREWORKS_BASE_URL,
|
||||
@@ -14,27 +14,6 @@ import {
|
||||
FIREWORKS_DEFAULT_MODEL_ID,
|
||||
} from "./provider-catalog.js";
|
||||
|
||||
function createDynamicContext(params: {
|
||||
provider: string;
|
||||
modelId: string;
|
||||
models: ProviderRuntimeModel[];
|
||||
}): ProviderResolveDynamicModelContext {
|
||||
return {
|
||||
provider: params.provider,
|
||||
modelId: params.modelId,
|
||||
modelRegistry: {
|
||||
find(providerId: string, modelId: string) {
|
||||
return (
|
||||
params.models.find(
|
||||
(model) =>
|
||||
model.provider === providerId && model.id.toLowerCase() === modelId.toLowerCase(),
|
||||
) ?? null
|
||||
);
|
||||
},
|
||||
} as ModelRegistry,
|
||||
};
|
||||
}
|
||||
|
||||
function createFireworksDefaultRuntimeModel(params: { reasoning: boolean }): ProviderRuntimeModel {
|
||||
return {
|
||||
id: FIREWORKS_DEFAULT_MODEL_ID,
|
||||
@@ -69,26 +48,12 @@ describe("fireworks provider plugin", () => {
|
||||
|
||||
it("builds the Fireworks Fire Pass starter catalog", async () => {
|
||||
const provider = await registerSingleProviderPlugin(fireworksPlugin);
|
||||
const catalog = await provider.catalog?.run({
|
||||
config: {},
|
||||
env: {},
|
||||
resolveProviderApiKey: () => ({ apiKey: "test-key" }),
|
||||
resolveProviderAuth: () => ({
|
||||
apiKey: "test-key",
|
||||
mode: "api_key",
|
||||
source: "env",
|
||||
}),
|
||||
} as never);
|
||||
const catalogProvider = await runSingleProviderCatalog(provider);
|
||||
|
||||
expect(catalog && "provider" in catalog).toBe(true);
|
||||
if (!catalog || !("provider" in catalog)) {
|
||||
throw new Error("expected single-provider catalog");
|
||||
}
|
||||
|
||||
expect(catalog.provider.api).toBe("openai-completions");
|
||||
expect(catalog.provider.baseUrl).toBe(FIREWORKS_BASE_URL);
|
||||
expect(catalog.provider.models?.map((model) => model.id)).toEqual([FIREWORKS_DEFAULT_MODEL_ID]);
|
||||
expect(catalog.provider.models?.[0]).toMatchObject({
|
||||
expect(catalogProvider.api).toBe("openai-completions");
|
||||
expect(catalogProvider.baseUrl).toBe(FIREWORKS_BASE_URL);
|
||||
expect(catalogProvider.models?.map((model) => model.id)).toEqual([FIREWORKS_DEFAULT_MODEL_ID]);
|
||||
expect(catalogProvider.models?.[0]).toMatchObject({
|
||||
reasoning: false,
|
||||
input: ["text", "image"],
|
||||
contextWindow: FIREWORKS_DEFAULT_CONTEXT_WINDOW,
|
||||
@@ -99,7 +64,7 @@ describe("fireworks provider plugin", () => {
|
||||
it("resolves forward-compat Fireworks model ids from the default template", async () => {
|
||||
const provider = await registerSingleProviderPlugin(fireworksPlugin);
|
||||
const resolved = provider.resolveDynamicModel?.(
|
||||
createDynamicContext({
|
||||
createProviderDynamicModelContext({
|
||||
provider: "fireworks",
|
||||
modelId: "accounts/fireworks/models/qwen3.6-plus",
|
||||
models: [createFireworksDefaultRuntimeModel({ reasoning: true })],
|
||||
@@ -118,7 +83,7 @@ describe("fireworks provider plugin", () => {
|
||||
it("disables reasoning metadata for Fireworks Kimi dynamic models", async () => {
|
||||
const provider = await registerSingleProviderPlugin(fireworksPlugin);
|
||||
const resolved = provider.resolveDynamicModel?.(
|
||||
createDynamicContext({
|
||||
createProviderDynamicModelContext({
|
||||
provider: "fireworks",
|
||||
modelId: "accounts/fireworks/models/kimi-k2p5",
|
||||
models: [createFireworksDefaultRuntimeModel({ reasoning: false })],
|
||||
@@ -135,7 +100,7 @@ describe("fireworks provider plugin", () => {
|
||||
it("disables reasoning metadata for Fireworks Kimi k2.5 aliases", async () => {
|
||||
const provider = await registerSingleProviderPlugin(fireworksPlugin);
|
||||
const resolved = provider.resolveDynamicModel?.(
|
||||
createDynamicContext({
|
||||
createProviderDynamicModelContext({
|
||||
provider: "fireworks",
|
||||
modelId: "accounts/fireworks/routers/kimi-k2.5-turbo",
|
||||
models: [createFireworksDefaultRuntimeModel({ reasoning: false })],
|
||||
|
||||
Reference in New Issue
Block a user