diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-02 16:36:25 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-02 16:36:25 +0300 |
| commit | 6bd23a588bacee2e8c75f477150b7e2d345002ff (patch) | |
| tree | 67bfa78afe206e7560350bdd52c60e0e80ec3243 /internal/audio/gemini_provider_test.go | |
| parent | 6ce9123de04ffff961cbf1da73648679216ff637 (diff) | |
Release v0.9.0v0.9.0
Diffstat (limited to 'internal/audio/gemini_provider_test.go')
| -rw-r--r-- | internal/audio/gemini_provider_test.go | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/internal/audio/gemini_provider_test.go b/internal/audio/gemini_provider_test.go index ff0b2f5..66f0a74 100644 --- a/internal/audio/gemini_provider_test.go +++ b/internal/audio/gemini_provider_test.go @@ -219,16 +219,50 @@ func TestWriteGeminiAudioFileWritesWAV(t *testing.T) { } } -func TestWriteGeminiAudioFileRejectsUnsupportedFormats(t *testing.T) { +func TestWriteGeminiAudioFileWritesMP3ViaFFmpeg(t *testing.T) { dir := t.TempDir() outputFile := filepath.Join(dir, "output.mp3") + ffmpegScript := filepath.Join(dir, "ffmpeg") + script := "#!/bin/sh\nout=\"\"\nfor arg in \"$@\"; do out=\"$arg\"; done\ncat >/dev/null\nprintf 'mp3' > \"$out\"\n" + if err := os.WriteFile(ffmpegScript, []byte(script), 0755); err != nil { + t.Fatalf("failed to write fake ffmpeg script: %v", err) + } + + originalLookPath := execLookPath + execLookPath = func(file string) (string, error) { + if file == "ffmpeg" { + return ffmpegScript, nil + } + return originalLookPath(file) + } + t.Cleanup(func() { + execLookPath = originalLookPath + }) + + if err := writeGeminiAudioFile(outputFile, []byte{0x11, 0x22}, "audio/pcm"); err != nil { + t.Fatalf("writeGeminiAudioFile() unexpected error: %v", err) + } + + fileData, err := os.ReadFile(outputFile) + if err != nil { + t.Fatalf("ReadFile() unexpected error: %v", err) + } + if string(fileData) != "mp3" { + t.Fatalf("output file = %q, want fake mp3 payload", string(fileData)) + } +} + +func TestWriteGeminiAudioFileRejectsUnsupportedFormats(t *testing.T) { + dir := t.TempDir() + outputFile := filepath.Join(dir, "output.flac") + err := writeGeminiAudioFile(outputFile, []byte{0x11, 0x22}, "audio/pcm") if err == nil { - t.Fatal("writeGeminiAudioFile() expected error for non-wav output") + t.Fatal("writeGeminiAudioFile() expected error for unsupported output") } - if !strings.Contains(err.Error(), "only supports .wav output files") { + if !strings.Contains(err.Error(), "only supports .wav and .mp3 output files") { t.Fatalf("writeGeminiAudioFile() error = %v, want unsupported-format message", err) } |
