更新代码

This commit is contained in:
hero920103 committed 2026-10-28 17:39:33 +08:00
1 parent eda7e8bc96
commit 6ff632e0b0
19 files changed
+2033 -197

No files matched your search

+52 -2
View File
@@ -12,9 +12,10 @@ import (
func TestDefaultIsUsable(t *testing.T) {
cfg := Default()
cfg.Normalize()
cfg.ensureModel()
if len(cfg.Models) == 0 {
t.Fatal("Normalize 后应至少有一份接入点")
t.Fatal("首次运行应有一份空白接入点")
}
if _, ok := cfg.ActiveModel(); !ok {
t.Fatal("Normalize 后应有生效接入点")
@@ -33,9 +34,10 @@ func TestDefaultIsUsable(t *testing.T) {
func TestNormalizeFillsZeroValues(t *testing.T) {
cfg := &Config{}
cfg.Normalize()
cfg.ensureModel()
if len(cfg.Models) == 0 {
t.Fatal("Normalize 应补全接入点列表")
t.Fatal("首次运行应补上一份接入点")
}
if cfg.Models[0].Format != llm.FormatOpenAI {
t.Fatalf("默认接入点应为 OpenAI 兼容格式,实际 %s", cfg.Models[0].Format)
@@ -105,6 +107,7 @@ func TestNormalizeTheme(t *testing.T) {
func TestCloneIsIndependent(t *testing.T) {
cfg := Default()
cfg.Normalize()
cfg.ensureModel()
cp := cfg.Clone()
cp.Models[0].Model = "changed"
@@ -173,6 +176,53 @@ func TestRemoveModelClearsActive(t *testing.T) {
}
}
func TestRemoveModelStaysRemoved(t *testing.T) {
cfg := Default()
cfg.Models = []Profile{
{Name: "a", Model: "m-a"},
{Name: "b", Model: "m-b"},
{Name: "c", Model: "m-c"},
}
cfg.Active = "b"
cfg.Normalize()
if !cfg.RemoveModel("b") {
t.Fatal("应能删除接入点")
}
// 再归一化一次,模拟落盘后重新加载:被删的接入点不该复活。
cfg.Normalize()
if len(cfg.Models) != 2 {
t.Fatalf("删除后应只剩 2 个接入点,实际 %d: %+v", len(cfg.Models), cfg.Models)
}
for _, m := range cfg.Models {
if m.Name == "b" {
t.Fatalf("被删的接入点不该被补回来: %+v", cfg.Models)
}
}
active, ok := cfg.ActiveModel()
if !ok {
t.Fatal("应自动选中一个剩余接入点")
}
if active.Name != "a" && active.Name != "c" {
t.Fatalf("生效项应指向剩余的接入点,实际 %s", active.Name)
}
}
func TestNormalizeKeepsEmptyModelList(t *testing.T) {
// 用户把接入点删光后,Normalize 不该再偷偷补一个回来,
// 否则"删除"看起来完全没生效。
cfg := Default()
cfg.Normalize()
if len(cfg.Models) != 0 {
t.Fatalf("Normalize 不应凭空补接入点: %+v", cfg.Models)
}
if cfg.Active != "" {
t.Fatalf("没有接入点时 Active 应为空,实际 %s", cfg.Active)
}
}
func TestMigrateLegacyProfiles(t *testing.T) {
cfg := Default()
cfg.migrateLegacy(legacyConfig{