test(elevenlabs): cover eleven_v3 tts catalog

This commit is contained in:
Peter Steinberger
2026-04-25 09:57:53 +01:00
parent 0fc68a5ed4
commit 2377f1a4cd
4 changed files with 16 additions and 4 deletions

View File

@@ -25,14 +25,14 @@ const registerElevenLabsPlugin = () =>
});
describeLive("elevenlabs plugin live", () => {
it("synthesizes speech through the registered provider", async () => {
it("synthesizes speech through the registered provider with eleven_v3", async () => {
const { speechProviders } = await registerElevenLabsPlugin();
const provider = requireRegisteredProvider(speechProviders, "elevenlabs");
const audioFile = await provider.synthesize({
text: "OpenClaw ElevenLabs text to speech integration test OK.",
text: "OpenClaw ElevenLabs eleven v three text to speech integration test OK.",
cfg: { plugins: { enabled: true } } as never,
providerConfig: { apiKey: ELEVENLABS_KEY },
providerConfig: { apiKey: ELEVENLABS_KEY, modelId: "eleven_v3" },
target: "audio-file",
timeoutMs: 45_000,
});

View File

@@ -1,7 +1,15 @@
import { describe, expect, it } from "vitest";
import { isValidVoiceId } from "./speech-provider.js";
import { buildElevenLabsSpeechProvider, isValidVoiceId } from "./speech-provider.js";
describe("elevenlabs speech provider", () => {
it("exposes the current ElevenLabs TTS model catalog", () => {
const provider = buildElevenLabsSpeechProvider();
expect(provider.models).toEqual(
expect.arrayContaining(["eleven_v3", "eleven_multilingual_v2"]),
);
});
it("validates ElevenLabs voice ID length and character rules", () => {
const cases = [
{ value: "pMsXgVXv3BLzUgSXRplE", expected: true },