ollie/cmd/olliesrv/internal/backend/new_test.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)
}
}
}