import { describe, expect, it } from "vitest" ;
import { OpenClawSchema } from "./zod-schema.js" ;
describe("OpenClawSchema talk validation" , () => {
it("accepts a positive integer talk.silenceTimeoutMs" , () => {
expect(() =>
OpenClawSchema.parse({
talk: {
silenceTimeoutMs: 1500 ,
},
}),
).not.toThrow();
});
it.each([
["boolean" , true ],
["string" , "1500" ],
["float" , 1500 .5 ],
])("rejects %s talk.silenceTimeoutMs" , (_label, value) => {
expect(() =>
OpenClawSchema.parse({
talk: {
silenceTimeoutMs: value,
},
}),
).toThrow(/silenceTimeoutMs|number|integer/i);
});
it("rejects talk.provider when it does not match talk.providers" , () => {
expect(() =>
OpenClawSchema.parse({
talk: {
provider: "acme" ,
providers: {
elevenlabs: {
voiceId: "voice-123" ,
},
},
},
}),
).toThrow(/talk\.provider|talk\.providers|missing "acme" /i);
});
it("rejects multi-provider talk config without talk.provider" , () => {
expect(() =>
OpenClawSchema.parse({
talk: {
providers: {
acme: {
voiceId: "voice-acme" ,
},
elevenlabs: {
voiceId: "voice-eleven" ,
},
},
},
}),
).toThrow(/talk\.provider|required/i);
});
});
Messung V0.5 in Prozent C=98 H=96 G=96
¤ Dauer der Verarbeitung: 0.7 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland