models_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package geminicli
  2. import "testing"
  3. func TestDefaultModels_ContainsImageModels(t *testing.T) {
  4. t.Parallel()
  5. byID := make(map[string]Model, len(DefaultModels))
  6. for _, model := range DefaultModels {
  7. byID[model.ID] = model
  8. }
  9. required := []string{
  10. "gemini-2.5-flash-image",
  11. "gemini-3.1-flash-image",
  12. }
  13. for _, id := range required {
  14. if _, ok := byID[id]; !ok {
  15. t.Fatalf("expected curated Gemini model %q to exist", id)
  16. }
  17. }
  18. }
  19. func TestGoogleOneModels_ExcludeUnsupportedNewAndImageModels(t *testing.T) {
  20. t.Parallel()
  21. mapping := GoogleOneModelMapping()
  22. for _, id := range []string{"gemini-2.0-flash", "gemini-2.5-flash", "gemini-2.5-pro"} {
  23. if mapping[id] != id {
  24. t.Fatalf("expected Google One model %q to map to itself", id)
  25. }
  26. }
  27. for _, id := range []string{"gemini-2.5-flash-image", "gemini-3.1-flash-image", "gemini-3.5-flash"} {
  28. if _, ok := mapping[id]; ok {
  29. t.Fatalf("did not expect unsupported Google One model %q", id)
  30. }
  31. }
  32. mapping["gemini-2.5-flash"] = "mutated"
  33. if GoogleOneModelMapping()["gemini-2.5-flash"] != "gemini-2.5-flash" {
  34. t.Fatal("GoogleOneModelMapping must return a defensive copy")
  35. }
  36. }