test: add pkg tests for gemini, openai, geminicli packages
- Add sanitize tests (internal/pkg/geminicli): 55.3% - Add constants/model tests (internal/pkg/openai): 34.2% - Add models tests (internal/pkg/gemini): 100%
This commit is contained in:
@@ -1,28 +1,49 @@
|
||||
package gemini
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
func TestDefaultModels_ContainsImageModels(t *testing.T) {
|
||||
t.Parallel()
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestDefaultModels(t *testing.T) {
|
||||
models := DefaultModels()
|
||||
byName := make(map[string]Model, len(models))
|
||||
for _, model := range models {
|
||||
byName[model.Name] = model
|
||||
}
|
||||
|
||||
required := []string{
|
||||
"models/gemini-2.5-flash-image",
|
||||
"models/gemini-3.1-flash-image",
|
||||
}
|
||||
|
||||
for _, name := range required {
|
||||
model, ok := byName[name]
|
||||
if !ok {
|
||||
t.Fatalf("expected fallback model %q to exist", name)
|
||||
}
|
||||
if len(model.SupportedGenerationMethods) == 0 {
|
||||
t.Fatalf("expected fallback model %q to advertise generation methods", name)
|
||||
}
|
||||
|
||||
// Should return 8 models
|
||||
require.Len(t, models, 8)
|
||||
|
||||
// Each model should have name and methods
|
||||
for _, m := range models {
|
||||
require.NotEmpty(t, m.Name)
|
||||
require.True(t, strings.HasPrefix(m.Name, "models/"))
|
||||
require.Contains(t, m.SupportedGenerationMethods, "generateContent")
|
||||
require.Contains(t, m.SupportedGenerationMethods, "streamGenerateContent")
|
||||
}
|
||||
}
|
||||
|
||||
func TestFallbackModelsList(t *testing.T) {
|
||||
resp := FallbackModelsList()
|
||||
require.Len(t, resp.Models, 8)
|
||||
}
|
||||
|
||||
func TestFallbackModel(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
expected string
|
||||
}{
|
||||
{"", "models/unknown"},
|
||||
{"gemini-2.0-flash", "models/gemini-2.0-flash"},
|
||||
{"models/gemini-2.5-pro", "models/gemini-2.5-pro"},
|
||||
{"custom-model", "models/custom-model"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.input, func(t *testing.T) {
|
||||
model := FallbackModel(tt.input)
|
||||
require.Equal(t, tt.expected, model.Name)
|
||||
require.Contains(t, model.SupportedGenerationMethods, "generateContent")
|
||||
require.Contains(t, model.SupportedGenerationMethods, "streamGenerateContent")
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user