Files
OmniRoute/tests/unit/model-supported-endpoints.test.ts
Marcelo Karval 11cbd7d4e0 fix(models): normalize media endpoint metadata (#11397)
Validado em lote combinado (batch-0824g) contra o tip de release/v3.8.50: typecheck:core limpo, gates estáticos OK, 62/62 testes focados passando (endpoint/parser/schema/static-model + catálogo).

Canonicaliza metadados de endpoint legados (video/audio) para IDs específicos por operação, mantendo compatibilidade retroativa via `normalizeModelSupportedEndpoints` (valores antigos `audio`/`video` continuam válidos como entrada e são normalizados na escrita). Obrigado pela contribuição, primeira PR bem-vinda!
2026-08-24 17:23:48 -03:00

59 lines
1.8 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import {
classifyModelSupportedEndpoints,
MODEL_SUPPORTED_ENDPOINT_VALUES,
normalizeModelSupportedEndpoints,
} from "../../src/shared/constants/modelSupportedEndpoints.ts";
test("normalizes legacy video and audio metadata to operation-specific endpoint ids", () => {
assert.deepEqual(normalizeModelSupportedEndpoints(["chat", "video", "audio"]), [
"chat",
"videos",
"audio-speech",
"audio-transcriptions",
]);
});
test("deduplicates canonical endpoint ids while preserving order", () => {
assert.deepEqual(
normalizeModelSupportedEndpoints([
"videos",
"video",
"audio-speech",
"audio",
"audio-transcriptions",
]),
["videos", "audio-speech", "audio-transcriptions"]
);
});
test("exports operation-specific values accepted by model metadata", () => {
assert.ok(MODEL_SUPPORTED_ENDPOINT_VALUES.includes("videos"));
assert.ok(MODEL_SUPPORTED_ENDPOINT_VALUES.includes("audio-speech"));
assert.ok(MODEL_SUPPORTED_ENDPOINT_VALUES.includes("audio-transcriptions"));
});
test("preserves endpoint ids introduced by external discovery", () => {
assert.deepEqual(normalizeModelSupportedEndpoints(["responses", "video"]), [
"responses",
"videos",
]);
});
test("classifies operation-specific media endpoints for the model catalog", () => {
assert.deepEqual(classifyModelSupportedEndpoints(["videos"]), { type: "video" });
assert.deepEqual(classifyModelSupportedEndpoints(["audio-speech"]), {
type: "audio",
subtype: "speech",
});
assert.deepEqual(classifyModelSupportedEndpoints(["audio-transcriptions"]), {
type: "audio",
subtype: "transcription",
});
assert.deepEqual(classifyModelSupportedEndpoints(["audio-speech", "audio-transcriptions"]), {
type: "audio",
});
});