2026-08-09 22:47:43 +02:00
|
|
|
package processing
|
|
|
|
|
|
|
|
|
|
import "testing"
|
|
|
|
|
|
2026-08-16 16:57:36 +02:00
|
|
|
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")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-08-09 22:47:43 +02:00
|
|
|
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)
|
|
|
|
|
}
|
|
|
|
|
}
|