package provider import "testing" // TestResolveVoiceRangfolge pinnt die dokumentierte Rangfolge // --voice-Pin > config-Mapping > Repo-Default > en-Default. func TestResolveVoiceRangfolge(t *testing.T) { cases := []struct { name string provider string lang string override string cfg map[string]string want string }{ {"Default edge de", "edge", "de", "", nil, "de-DE-KatjaNeural"}, {"Default edge en", "edge", "en", "", nil, "en-US-AriaNeural"}, {"Default elevenlabs de (neutral, nicht privat)", "elevenlabs", "de", "", nil, "21m00Tcm4TlvDq8ikWAM"}, {"Default openai en", "openai", "en", "", nil, "alloy"}, {"Mapping schlägt Default", "edge", "de", "", map[string]string{"de": "de-DE-ConradNeural"}, "de-DE-ConradNeural"}, {"Pin schlägt Mapping", "edge", "de", "Gepinnt", map[string]string{"de": "de-DE-ConradNeural"}, "Gepinnt"}, {"unbekannte Sprache → en-Default", "edge", "fr", "", nil, "en-US-AriaNeural"}, {"osbuiltin kennt keine Voice-IDs", "osbuiltin", "de", "", nil, ""}, } for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { if got := resolveVoice(tc.provider, tc.lang, tc.override, tc.cfg); got != tc.want { t.Errorf("resolveVoice = %q, want %q", got, tc.want) } }) } }