summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-01 14:35:16 +0300
committerPaul Buetow <paul@buetow.org>2026-04-01 14:35:16 +0300
commit4b57c9e959a280da7b16779ab1931f8c95a868c7 (patch)
tree651d7442000816114ca4077e20dd5c10e74d15e6 /internal
parent6e88181efd6b176659d990a048a5ffaef5459fce (diff)
Address zm review feedback on Gemini tests
Diffstat (limited to 'internal')
-rw-r--r--internal/audio/gemini_provider_test.go59
1 files changed, 57 insertions, 2 deletions
diff --git a/internal/audio/gemini_provider_test.go b/internal/audio/gemini_provider_test.go
index aa73d4a..ff0b2f5 100644
--- a/internal/audio/gemini_provider_test.go
+++ b/internal/audio/gemini_provider_test.go
@@ -145,6 +145,57 @@ func TestExtractAudioData(t *testing.T) {
}
}
+func TestExtractAudioDataErrors(t *testing.T) {
+ tests := []struct {
+ name string
+ response *genai.GenerateContentResponse
+ wantError string
+ }{
+ {
+ name: "nil response",
+ response: nil,
+ wantError: "no response from Gemini",
+ },
+ {
+ name: "response without audio",
+ response: &genai.GenerateContentResponse{
+ Candidates: []*genai.Candidate{
+ nil,
+ {Content: nil},
+ {
+ Content: &genai.Content{
+ Parts: []*genai.Part{
+ nil,
+ {InlineData: nil},
+ {InlineData: &genai.Blob{Data: nil, MIMEType: "audio/pcm"}},
+ },
+ },
+ },
+ },
+ },
+ wantError: "no audio data returned from Gemini",
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ data, mimeType, err := extractAudioData(tt.response)
+ if err == nil {
+ t.Fatal("extractAudioData() expected error")
+ }
+ if err.Error() != tt.wantError {
+ t.Fatalf("extractAudioData() error = %q, want %q", err.Error(), tt.wantError)
+ }
+ if data != nil {
+ t.Fatalf("extractAudioData() data = %v, want nil", data)
+ }
+ if mimeType != "" {
+ t.Fatalf("extractAudioData() mimeType = %q, want empty string", mimeType)
+ }
+ })
+ }
+}
+
func TestWriteGeminiAudioFileWritesWAV(t *testing.T) {
dir := t.TempDir()
outputFile := filepath.Join(dir, "output.wav")
@@ -186,10 +237,10 @@ func TestWriteGeminiAudioFileRejectsUnsupportedFormats(t *testing.T) {
}
}
-func TestGeminiProviderIntegrationWithGoogleAPIKey(t *testing.T) {
+func TestNewGeminiProviderWithGoogleAPIKey(t *testing.T) {
apiKey := strings.TrimSpace(os.Getenv("GOOGLE_API_KEY"))
if apiKey == "" {
- t.Skip("Skipping integration test: GOOGLE_API_KEY not set")
+ t.Skip("Skipping smoke test: GOOGLE_API_KEY not set")
}
provider, err := NewGeminiProvider(&Config{GoogleAPIKey: apiKey})
@@ -202,6 +253,10 @@ func TestGeminiProviderIntegrationWithGoogleAPIKey(t *testing.T) {
t.Fatalf("NewGeminiProvider() returned %T, want *GeminiProvider", provider)
}
+ if geminiProvider.Name() != "gemini" {
+ t.Fatalf("Name() = %q, want %q", geminiProvider.Name(), "gemini")
+ }
+
if err := geminiProvider.IsAvailable(); err != nil {
t.Fatalf("IsAvailable() unexpected error with GOOGLE_API_KEY set: %v", err)
}