import { describe, expect, it } from "vitest"; import { defaultOnboardingVoiceId, offlineOnboardingVoices, onboardingVoicesFromList, } from "./onboarding-voices.js"; describe("offlineOnboardingVoices", () => { it("offers German voices for de", () => { expect(offlineOnboardingVoices("de").map((voice) => voice.id)).toEqual([ "dm_thorsten", "df_kerstin", "df_eva", "df_ramona", "dm_karlsson", ]); }); it("offers English voices for en", () => { const ids = offlineOnboardingVoices("en").map((voice) => voice.id); expect(ids).toContain("af_heart"); expect(ids).not.toContain("df_eva"); }); }); describe("onboardingVoicesFromList", () => { it("uses offline German presets when the server only lists English voices", () => { const englishOnly = [{ id: "af_alloy", label: "Alloy", description: "neutral" }]; expect(onboardingVoicesFromList(englishOnly, "de").map((voice) => voice.id)).toEqual([ "dm_thorsten", "df_kerstin", "df_eva", "df_ramona", "dm_karlsson", ]); }); }); describe("defaultOnboardingVoiceId", () => { it("prefers Thorsten for German", () => { expect(defaultOnboardingVoiceId("de", offlineOnboardingVoices("de"))).toBe("dm_thorsten"); }); });