openclaw/extensions/moonshot/provider-catalog.test.ts

40 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
applyMoonshotNativeStreamingUsageCompat,
buildMoonshotProvider,
MOONSHOT_BASE_URL,
MOONSHOT_CN_BASE_URL,
} from "./api.js";
describe("moonshot provider catalog", () => {
it("builds the bundled Moonshot provider defaults", () => {
const provider = buildMoonshotProvider();
expect(provider.baseUrl).toBe(MOONSHOT_BASE_URL);
expect(provider.api).toBe("openai-completions");
expect(provider.models.map((model) => model.id)).toEqual([
"kimi-k2.5",
"kimi-k2-thinking",
"kimi-k2-thinking-turbo",
"kimi-k2-turbo",
]);
});
it("opts native Moonshot baseUrls into streaming usage only inside the extension", () => {
const defaultProvider = applyMoonshotNativeStreamingUsageCompat(buildMoonshotProvider());
expect(defaultProvider.models?.[0]?.compat?.supportsUsageInStreaming).toBe(true);
const cnProvider = applyMoonshotNativeStreamingUsageCompat({
...buildMoonshotProvider(),
baseUrl: MOONSHOT_CN_BASE_URL,
});
expect(cnProvider.models?.[0]?.compat?.supportsUsageInStreaming).toBe(true);
const customProvider = applyMoonshotNativeStreamingUsageCompat({
...buildMoonshotProvider(),
baseUrl: "https://proxy.example.com/v1",
});
expect(customProvider.models?.[0]?.compat?.supportsUsageInStreaming).toBeUndefined();
});
});