feat: 设置页新增模型卡片,支持为7种能力配置默认模型

This commit is contained in:
2026-06-07 09:51:04 +08:00
parent 43b14a94a3
commit 074ea0bb1a
8 changed files with 338 additions and 25 deletions

View File

@@ -113,4 +113,45 @@ describe("设置数据访问层", () => {
expect(result).toEqual({ compact: false, theme: "dark" });
});
});
test("updateSettings 写入 defaultModels 并读取", () => {
withSettingsDb((db) => {
const updated = updateSettings(
db,
{ defaultModels: { text: "model-1", imageRecognition: null } },
createNoopLogger(),
);
expect(updated.defaultModels).toEqual({ text: "model-1", imageRecognition: null });
expect(updated.compact).toBe(false);
expect(updated.theme).toBe("system");
const read = getSettings(db);
expect(read.defaultModels).toEqual({ text: "model-1", imageRecognition: null });
});
});
test("defaultModels 与 theme/compact 合并持久化", () => {
withSettingsDb((db) => {
updateSettings(db, { theme: "dark", compact: true }, createNoopLogger());
const result = updateSettings(db, { defaultModels: { imageGeneration: "model-2" } }, createNoopLogger());
expect(result).toEqual({
compact: true,
defaultModels: { imageGeneration: "model-2" },
theme: "dark",
});
});
});
test("defaultModels 全量替换——前端负责深度合并", () => {
withSettingsDb((db) => {
updateSettings(db, { defaultModels: { text: "model-1", imageRecognition: "model-2" } }, createNoopLogger());
// 前端在 onChange 中负责合并 old + newField提交完整对象
const result = updateSettings(
db,
{ defaultModels: { text: "model-3", imageRecognition: "model-2" } },
createNoopLogger(),
);
expect(result.defaultModels).toEqual({ text: "model-3", imageRecognition: "model-2" });
});
});
});