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:
Your Name
2026-05-29 16:36:54 +08:00
parent 0b17ab42c2
commit 9cc4305395
3 changed files with 194 additions and 21 deletions

View File

@@ -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")
})
}
}