Spracherkennung für: .ts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
import { beforeEach, describe, expect, it, vi } from "vitest";
import { ErrorCodes } from "../protocol/index.js";
const mocks = vi.hoisted(() => ({
loadConfig: vi.fn(() => ({})),
resolveExplicitTtsOverrides: vi.fn(() => ({})),
textToSpeech: vi.fn(async () => ({
success: true,
audioPath: "/tmp/tts.mp3",
provider: "openai",
outputFormat: "mp3",
voiceCompatible: false,
})),
}));
vi.mock("../../config/config.js", () => ({
loadConfig: mocks.loadConfig as typeof import("../../config/config.js").loadConfig,
}));
vi.mock("../../tts/provider-registry.js", () => ({
canonicalizeSpeechProviderId: vi.fn(),
getSpeechProvider: vi.fn(),
listSpeechProviders: vi.fn(() => []),
}));
vi.mock("../../tts/tts.js", () => ({
getResolvedSpeechProviderConfig: vi.fn(),
getTtsProvider: vi.fn(() => "openai"),
isTtsEnabled: vi.fn(() => true),
isTtsProviderConfigured: vi.fn(() => true),
resolveExplicitTtsOverrides:
mocks.resolveExplicitTtsOverrides as typeof import("../../tts/tts.js").resolveExplicitTtsOverrides,
resolveTtsAutoMode: vi.fn(() => false),
resolveTtsConfig: vi.fn(() => ({})),
resolveTtsPrefsPath: vi.fn(() => "/tmp/tts.json"),
resolveTtsProviderOrder: vi.fn(() => ["openai"]),
setTtsEnabled: vi.fn(),
setTtsProvider: vi.fn(),
textToSpeech: mocks.textToSpeech as typeof import("../../tts/tts.js").textToSpeech,
}));
describe("ttsHandlers", () => {
beforeEach(() => {
mocks.loadConfig.mockReset();
mocks.loadConfig.mockReturnValue({});
mocks.resolveExplicitTtsOverrides.mockReset();
mocks.resolveExplicitTtsOverrides.mockReturnValue({});
mocks.textToSpeech.mockReset();
mocks.textToSpeech.mockResolvedValue({
success: true,
audioPath: "/tmp/tts.mp3",
provider: "openai",
outputFormat: "mp3",
voiceCompatible: false,
});
});
it("returns INVALID_REQUEST when TTS override validation fails", async () => {
mocks.resolveExplicitTtsOverrides.mockImplementation(() => {
throw new Error('Unknown TTS provider "bad".');
});
const { ttsHandlers } = await import("./tts.js");
const respond = vi.fn();
await ttsHandlers["tts.convert"]({
params: {
text: "hello",
provider: "bad",
},
respond,
} as never);
expect(respond).toHaveBeenCalledWith(
false,
undefined,
expect.objectContaining({
code: ErrorCodes.INVALID_REQUEST,
message: 'Error: Unknown TTS provider "bad".',
}),
);
expect(mocks.textToSpeech).not.toHaveBeenCalled();
});
});
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-04-27)
¤
*© Formatika GbR, Deutschland