import { describe, expect, it } from
"vitest" ;
import {
detectOpenAICompletionsCompat,
resolveOpenAICompletionsCompatDefaults,
} from
"./openai-completions-compat.js" ;
describe(
"resolveOpenAICompletionsCompatDefaults" , () => {
it(
"keeps streaming usage enabled for provider-declared compatible endpoints" , () => {
expect(
resolveOpenAICompletionsCompatDefaults({
provider:
"custom-local" ,
endpointClass:
"local" ,
knownProviderFamily:
"custom-local" ,
supportsNativeStreamingUsageCompat:
true ,
}).supportsUsageInStreaming,
).toBe(
true );
});
it(
"keeps streaming usage enabled for custom provider-declared compatible endpoints" , () =>
{
expect(
resolveOpenAICompletionsCompatDefaults({
provider: "custom-local" ,
endpointClass: "custom" ,
knownProviderFamily: "custom-local" ,
supportsNativeStreamingUsageCompat: true ,
}).supportsUsageInStreaming,
).toBe(true );
});
it("does not broaden streaming usage for generic custom providers" , () => {
expect(
resolveOpenAICompletionsCompatDefaults({
provider: "custom-cpa" ,
endpointClass: "custom" ,
knownProviderFamily: "custom-cpa" ,
}).supportsUsageInStreaming,
).toBe(false );
});
it.each([
"vllm" ,
"localai" ,
"sglang" ,
"llama-cpp" ,
"llama.cpp" ,
"llamacpp" ,
"jan" ,
"lmstudio" ,
"lm-studio" ,
"text-generation-webui" ,
"tabby" ,
"tabbyapi" ,
])("enables streaming usage compat for known local provider %s" , (provider) => {
expect(
resolveOpenAICompletionsCompatDefaults({
provider,
endpointClass: "custom" ,
knownProviderFamily: provider,
}).supportsUsageInStreaming,
).toBe(true );
});
it("matches known local providers case-insensitively" , () => {
expect(
resolveOpenAICompletionsCompatDefaults({
provider: "vLLM" ,
endpointClass: "local" ,
knownProviderFamily: "vllm" ,
}).supportsUsageInStreaming,
).toBe(true );
});
});
describe("detectOpenAICompletionsCompat" , () => {
it("enables streaming usage compat for vLLM on a local OpenAI-compatible endpoint" , () => {
const detected = detectOpenAICompletionsCompat({
provider: "vllm" ,
baseUrl: "http://127.0.0.1:8000/v1 ",
id: "Qwen/Qwen3-Coder-Next-FP8" ,
});
expect(detected.defaults.supportsUsageInStreaming).toBe(true );
});
});
Messung V0.5 in Prozent C=99 H=100 G=99
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland