mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-07-13 00:13:33 +08:00
- 新增 CodeBuddy CLI provider,支持 codebuddy/cbc 命令调用与输出解析 - 将 Base URL、API Key/Auth Token、自定义请求头映射到 CodeBuddy CLI 环境变量 - 扩展 custom provider 路由与测试链路,兼容空 Base URL 和 CLI 默认模型选择 - AI 设置新增 CodeBuddy 预设,并补齐 preset 回显识别与匹配逻辑 - 修正就绪态、模型列表与表单校验,允许留空凭证直接复用本机已登录账号 - 补充前后端定向测试并覆盖 CodeBuddy 配置展示文案 Close #574
62 lines
1.7 KiB
Go
62 lines
1.7 KiB
Go
package aiservice
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"GoNavi-Wails/internal/ai"
|
|
)
|
|
|
|
func TestAIListModels_ReturnsStaticModelsForCodeBuddyCLIWithoutRemoteFetch(t *testing.T) {
|
|
service := NewService()
|
|
service.providers = []ai.ProviderConfig{
|
|
{
|
|
ID: "provider-codebuddy",
|
|
Type: "custom",
|
|
APIFormat: "codebuddy-cli",
|
|
Models: []string{"claude-sonnet-4", "gpt-4.1"},
|
|
},
|
|
}
|
|
service.activeProvider = "provider-codebuddy"
|
|
|
|
result := service.AIListModels()
|
|
if result["success"] != true {
|
|
t.Fatalf("expected AIListModels to succeed, got %#v", result)
|
|
}
|
|
models, ok := result["models"].([]string)
|
|
if !ok {
|
|
t.Fatalf("expected []string models, got %#v", result["models"])
|
|
}
|
|
if len(models) != 2 || models[0] != "claude-sonnet-4" {
|
|
t.Fatalf("expected static CodeBuddy models, got %#v", models)
|
|
}
|
|
if source, _ := result["source"].(string); source != "static" {
|
|
t.Fatalf("expected static source, got %#v", result["source"])
|
|
}
|
|
}
|
|
|
|
func TestAITestProvider_UsesCodeBuddyCLIHealthCheck(t *testing.T) {
|
|
originalHealthCheckFunc := codebuddyCLIHealthCheckFunc
|
|
defer func() {
|
|
codebuddyCLIHealthCheckFunc = originalHealthCheckFunc
|
|
}()
|
|
|
|
var received ai.ProviderConfig
|
|
codebuddyCLIHealthCheckFunc = func(config ai.ProviderConfig) error {
|
|
received = config
|
|
return nil
|
|
}
|
|
|
|
service := NewService()
|
|
result := service.AITestProvider(ai.ProviderConfig{
|
|
Type: "custom",
|
|
APIFormat: "codebuddy-cli",
|
|
APIKey: "cb-test",
|
|
})
|
|
if result["success"] != true {
|
|
t.Fatalf("expected AITestProvider to succeed, got %#v", result)
|
|
}
|
|
if received.APIFormat != "codebuddy-cli" {
|
|
t.Fatalf("expected CodeBuddy test to use codebuddy-cli api format, got %q", received.APIFormat)
|
|
}
|
|
}
|