80 lines
1.9 KiB
Go
80 lines
1.9 KiB
Go
package backend
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestNewWithName_NoBackendErrors(t *testing.T) {
|
|
_, err := newBackendFromConfig("", configFile{Backends: map[string]BackendConfig{}})
|
|
if err == nil {
|
|
t.Fatal("expected error when backend is unset")
|
|
}
|
|
}
|
|
|
|
func TestNewBackendFromConfig_Ollama(t *testing.T) {
|
|
b, err := newBackendFromConfig("ollama", configFile{Backends: map[string]BackendConfig{
|
|
"ollama": {Host: "http://localhost:11434"},
|
|
}})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if b.Name() != "ollama" {
|
|
t.Errorf("name = %q", b.Name())
|
|
}
|
|
}
|
|
|
|
func TestNewBackendFromConfig_OpenAI(t *testing.T) {
|
|
b, err := newBackendFromConfig("openai", configFile{Backends: map[string]BackendConfig{
|
|
"openai": {URL: "https://api.openai.com", Key: "sk-test"},
|
|
}})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if b.Name() != "openai" {
|
|
t.Errorf("name = %q", b.Name())
|
|
}
|
|
}
|
|
|
|
func TestNewBackendFromConfig_AnthropicMissingKey(t *testing.T) {
|
|
_, err := newBackendFromConfig("anthropic", configFile{Backends: map[string]BackendConfig{
|
|
"anthropic": {},
|
|
}})
|
|
if err == nil {
|
|
t.Fatal("expected error for missing key")
|
|
}
|
|
}
|
|
|
|
func TestNewBackendFromConfig_Unknown(t *testing.T) {
|
|
_, err := newBackendFromConfig("bogus", configFile{Backends: map[string]BackendConfig{}})
|
|
if err == nil {
|
|
t.Fatal("expected error for unknown backend")
|
|
}
|
|
}
|
|
|
|
func TestNewOllama_InvalidURL(t *testing.T) {
|
|
_, err := NewOllama("://bad")
|
|
if err == nil {
|
|
t.Fatal("expected error for invalid URL")
|
|
}
|
|
}
|
|
|
|
func TestNewOpenAI_InvalidURL(t *testing.T) {
|
|
_, err := NewOpenAI("openai", "://bad", "k")
|
|
if err == nil {
|
|
t.Fatal("expected error for invalid URL")
|
|
}
|
|
}
|
|
|
|
func TestBackends(t *testing.T) {
|
|
bs := Backends()
|
|
if len(bs) != 7 {
|
|
t.Fatalf("len = %d; want 7", len(bs))
|
|
}
|
|
want := map[string]bool{"ollama": true, "openai": true, "openrouter": true, "anthropic": true, "copilot": true, "kiro": true, "gemini": true}
|
|
for _, b := range bs {
|
|
if !want[b] {
|
|
t.Errorf("unexpected backend %q", b)
|
|
}
|
|
}
|
|
}
|