ScuttleBot
| 5ac549c… | lmata | 1 | package llm |
| 5ac549c… | lmata | 2 | |
| 5ac549c… | lmata | 3 | import ( |
| 5ac549c… | lmata | 4 | "testing" |
| 5ac549c… | lmata | 5 | ) |
| 5ac549c… | lmata | 6 | |
| 5ac549c… | lmata | 7 | func TestNew(t *testing.T) { |
| 5ac549c… | lmata | 8 | tests := []struct { |
| 5ac549c… | lmata | 9 | name string |
| 5ac549c… | lmata | 10 | cfg BackendConfig |
| 5ac549c… | lmata | 11 | wantErr bool |
| 5ac549c… | lmata | 12 | }{ |
| 5ac549c… | lmata | 13 | { |
| 5ac549c… | lmata | 14 | name: "openai", |
| 5ac549c… | lmata | 15 | cfg: BackendConfig{Backend: "openai", APIKey: "key"}, |
| 5ac549c… | lmata | 16 | }, |
| 5ac549c… | lmata | 17 | { |
| 5ac549c… | lmata | 18 | name: "anthropic", |
| 5ac549c… | lmata | 19 | cfg: BackendConfig{Backend: "anthropic", APIKey: "key"}, |
| 5ac549c… | lmata | 20 | }, |
| 5ac549c… | lmata | 21 | { |
| 5ac549c… | lmata | 22 | name: "gemini", |
| 5ac549c… | lmata | 23 | cfg: BackendConfig{Backend: "gemini", APIKey: "key"}, |
| 5ac549c… | lmata | 24 | }, |
| 5ac549c… | lmata | 25 | { |
| 5ac549c… | lmata | 26 | name: "ollama", |
| 5ac549c… | lmata | 27 | cfg: BackendConfig{Backend: "ollama", BaseURL: "http://localhost:11434"}, |
| 5ac549c… | lmata | 28 | }, |
| 5ac549c… | lmata | 29 | { |
| 5ac549c… | lmata | 30 | name: "bedrock", |
| 5ac549c… | lmata | 31 | cfg: BackendConfig{Backend: "bedrock", Region: "us-east-1", AWSKeyID: "key", AWSSecretKey: "secret"}, |
| 5ac549c… | lmata | 32 | }, |
| 5ac549c… | lmata | 33 | { |
| 5ac549c… | lmata | 34 | name: "unknown", |
| 5ac549c… | lmata | 35 | cfg: BackendConfig{Backend: "unknown"}, |
| 5ac549c… | lmata | 36 | wantErr: true, |
| 5ac549c… | lmata | 37 | }, |
| 5ac549c… | lmata | 38 | } |
| 5ac549c… | lmata | 39 | |
| 5ac549c… | lmata | 40 | for _, tt := range tests { |
| 5ac549c… | lmata | 41 | t.Run(tt.name, func(t *testing.T) { |
| 5ac549c… | lmata | 42 | _, err := New(tt.cfg) |
| 5ac549c… | lmata | 43 | if (err != nil) != tt.wantErr { |
| 5ac549c… | lmata | 44 | t.Errorf("New() error = %v, wantErr %v", err, tt.wantErr) |
| 5ac549c… | lmata | 45 | } |
| 5ac549c… | lmata | 46 | }) |
| 5ac549c… | lmata | 47 | } |
| 5ac549c… | lmata | 48 | } |
| 5ac549c… | lmata | 49 | |
| 5ac549c… | lmata | 50 | func TestBackendNames(t *testing.T) { |
| 5ac549c… | lmata | 51 | names := BackendNames() |
| 5ac549c… | lmata | 52 | if len(names) == 0 { |
| 5ac549c… | lmata | 53 | t.Error("expected non-empty backend names") |
| 5ac549c… | lmata | 54 | } |
| 1066004… | lmata | 55 | |
| 5ac549c… | lmata | 56 | foundGemini := false |
| 5ac549c… | lmata | 57 | for _, n := range names { |
| 5ac549c… | lmata | 58 | if n == "gemini" { |
| 5ac549c… | lmata | 59 | foundGemini = true |
| 5ac549c… | lmata | 60 | break |
| 5ac549c… | lmata | 61 | } |
| 5ac549c… | lmata | 62 | } |
| 5ac549c… | lmata | 63 | if !foundGemini { |
| 5ac549c… | lmata | 64 | t.Error("expected gemini in backend names") |
| 5ac549c… | lmata | 65 | } |
| 5ac549c… | lmata | 66 | } |
| 5ac549c… | lmata | 67 | |
| 5ac549c… | lmata | 68 | func TestKnownBackends(t *testing.T) { |
| 5ac549c… | lmata | 69 | if _, ok := KnownBackends["openai"]; !ok { |
| 5ac549c… | lmata | 70 | t.Error("expected openai in known backends") |
| 5ac549c… | lmata | 71 | } |
| 5ac549c… | lmata | 72 | } |