From e905d0d7435a827825017c5612b6e61d1f1f5da7 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 2 Apr 2026 08:16:57 +0300 Subject: Centralize audio sidecar generation --- internal/processor/processor_test.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'internal/processor/processor_test.go') diff --git a/internal/processor/processor_test.go b/internal/processor/processor_test.go index f658713..69250bf 100644 --- a/internal/processor/processor_test.go +++ b/internal/processor/processor_test.go @@ -436,6 +436,7 @@ func TestGenerateAudioBgBgUsesSharedOpenAIVoices(t *testing.T) { metadata := string(metadataData) for _, want := range []string{ "provider=openai", + "cardtype=bg-bg", "audio_file=audio_front.mp3", "audio_file_back=audio_back.mp3", } { @@ -443,6 +444,19 @@ func TestGenerateAudioBgBgUsesSharedOpenAIVoices(t *testing.T) { t.Fatalf("metadata = %q, missing %q", metadata, want) } } + + for i, outputFile := range fakeProvider.outputFiles { + attrPath := audio.AttributionPath(outputFile) + attributionData, err := os.ReadFile(attrPath) + if err != nil { + t.Fatalf("expected attribution file %q: %v", attrPath, err) + } + attribution := string(attributionData) + wantText := []string{"ябълка...", "круша..."}[i] + if !strings.Contains(attribution, "Processed text sent to TTS: "+wantText) { + t.Fatalf("bg-bg attribution missing processed text %q: %q", wantText, attribution) + } + } } func TestGenerateAudioProviderFactoryError(t *testing.T) { @@ -548,11 +562,22 @@ func TestGenerateAudioUsesConfiguredGeminiVoiceAndModel(t *testing.T) { "speed=1.00", "format=wav", "audio_file=audio.wav", + "cardtype=en-bg", } { if !strings.Contains(metadata, want) { t.Fatalf("metadata = %q, missing %q", metadata, want) } } + + attrPath := audio.AttributionPath(fakeProvider.lastOutputFile) + attributionData, err := os.ReadFile(attrPath) + if err != nil { + t.Fatalf("expected attribution file %q: %v", attrPath, err) + } + attribution := string(attributionData) + if !strings.Contains(attribution, "Processed text sent to TTS: ябълка...") { + t.Fatalf("gemini attribution missing processed text: %q", attribution) + } } func TestGenerateAudioUsesConfiguredAudioFormatWhenOpenAIConfigIsSetOnly(t *testing.T) { @@ -612,11 +637,22 @@ func TestGenerateAudioUsesConfiguredAudioFormatWhenOpenAIConfigIsSetOnly(t *test "model=gpt-4o-mini-tts", "voice=alloy", "format=mp3", + "cardtype=en-bg", } { if !strings.Contains(metadata, want) { t.Fatalf("metadata = %q, missing %q", metadata, want) } } + + attrPath := audio.AttributionPath(fakeProvider.lastOutputFile) + attributionData, err := os.ReadFile(attrPath) + if err != nil { + t.Fatalf("expected attribution file %q: %v", attrPath, err) + } + attribution := string(attributionData) + if !strings.Contains(attribution, "Processed text sent to TTS: ябълка...") { + t.Fatalf("openai attribution missing processed text: %q", attribution) + } } func TestGenerateAnkiFileUsesEffectiveAudioFormatForGemini(t *testing.T) { -- cgit v1.2.3