Files
OmniRoute/tests/unit/edgetts-retirement.test.ts
Diego Rodrigues de Sa e Souza dd8575eb2c chore(audio): retire EdgeTTS pending provenance review (#11711)
Merged via /merge-batch (v3.8.51 provenance sweep). Boarded and validated together with the batch's other provenance/retirement PRs in a combined worktree — full gate suite green, including the audio/speech-combo regression suites. Thank you.
2026-08-28 04:45:17 -03:00

53 lines
1.9 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import {
AUDIO_SPEECH_PROVIDERS,
getAllAudioModels,
getSpeechProvider,
parseSpeechModel,
} from "../../open-sse/config/audioRegistry.ts";
import { getRegistryMediaKinds } from "../../open-sse/config/mediaServiceKinds.ts";
import { handleAudioSpeech } from "../../open-sse/handlers/audioSpeech.ts";
import { toProviderModels } from "../../src/app/(dashboard)/dashboard/cache/media/mediaProviderModels.ts";
test("retired EdgeTTS is absent from every published speech catalog", () => {
assert.equal(getSpeechProvider("edgetts"), null);
assert.deepEqual(parseSpeechModel("edgetts/en-US-AriaNeural"), {
provider: null,
model: "edgetts/en-US-AriaNeural",
});
assert.equal(Object.hasOwn(AUDIO_SPEECH_PROVIDERS, "edgetts"), false);
assert.equal(
getAllAudioModels().some((model) => model.provider === "edgetts"),
false
);
assert.deepEqual(getRegistryMediaKinds("edgetts"), []);
assert.equal(
toProviderModels(AUDIO_SPEECH_PROVIDERS).some((provider) => provider.id === "edgetts"),
false
);
});
test("speech requests no longer advertise or dispatch EdgeTTS", async () => {
const response = await handleAudioSpeech({
body: { model: "edgetts/en-US-AriaNeural", input: "hello" },
credentials: null,
});
const payload = (await response.json()) as { error: { message: string } };
assert.equal(response.status, 400);
assert.match(payload.error.message, /No speech provider found/);
const available = payload.error.message.split("Available:")[1] || "";
assert.doesNotMatch(available, /edgetts/i);
for (const control of ["elevenlabs", "aws-polly", "gtts"]) {
assert.match(available, new RegExp(`\\b${control}\\b`));
}
});
test("retiring EdgeTTS preserves the supported speech providers", () => {
for (const control of ["gtts", "aws-polly", "elevenlabs"]) {
assert.ok(getSpeechProvider(control), `${control} must remain registered`);
}
});