Files
descrybe/apps/api/internal/processing/ai_provider_mode_test.go
T
2026-08-16 16:57:36 +02:00

64 lines
1.8 KiB
Go

package processing
import "testing"
func TestPreferKnownProviderMode(t *testing.T) {
t.Parallel()
if got := preferKnownProviderMode(AIProviderUnknown, AIProviderInternal); got != AIProviderInternal {
t.Fatalf("unknown+internal=%q", got)
}
if got := preferKnownProviderMode("", "custom"); got != AIProviderCustom {
t.Fatalf("empty+custom=%q", got)
}
if got := preferKnownProviderMode(AIProviderInternal, AIProviderCustom); got != AIProviderInternal {
t.Fatalf("internal must win first=%q", got)
}
if got := preferKnownProviderMode(AIProviderUnknown, ""); got != AIProviderUnknown {
t.Fatalf("all unknown=%q", got)
}
if isUnknownProviderMode("") != true || isUnknownProviderMode(AIProviderUnknown) != true {
t.Fatal("expected empty/unknown to be unknown")
}
if isUnknownProviderMode(AIProviderInternal) {
t.Fatal("internal must not be unknown")
}
}
func TestNormalizeProviderMode(t *testing.T) {
t.Parallel()
cases := []struct {
in, want string
}{
{"", AIProviderUnknown},
{"internal", AIProviderInternal},
{"custom", AIProviderCustom},
{"popular:openai", "popular:openai"},
{"popular:", "popular:unknown"},
{"weird", AIProviderUnknown},
}
for _, c := range cases {
if got := normalizeProviderMode(c.in); got != c.want {
t.Fatalf("normalize(%q)=%q want %q", c.in, got, c.want)
}
}
}
func TestCompleterProviderMode_OpenAIClient(t *testing.T) {
t.Parallel()
c := NewOpenAIClient("k", "", "m", 0, 1)
if got := CompleterProviderMode(c); got != AIProviderInternal {
t.Fatalf("got %q", got)
}
c.ModeLabel = "popular:groq"
if got := CompleterProviderMode(c); got != "popular:groq" {
t.Fatalf("got %q", got)
}
}
func TestCompleterProviderMode_Heuristic(t *testing.T) {
t.Parallel()
if got := CompleterProviderMode(HeuristicCompleter{}); got != AIProviderInternal {
t.Fatalf("got %q", got)
}
}