feat(*): 画布创作体验 - 完善 Agent 引导、生成防重、搜索快捷键、素材多选与分辨率兼容

This commit is contained in:
ddCat
2026-08-28 16:24:58 +08:00
parent 913cf4b304
commit ab89c05362
52 changed files with 2344 additions and 500 deletions

View File

@@ -0,0 +1,27 @@
import { describe, expect, test } from "bun:test";
import { nextCopiedNodeTitle } from "@/lib/canvas/canvas-node-copy";
describe("canvas node copy title", () => {
test("首次复制使用 copy1,后续按已有最大序号递增", () => {
expect(nextCopiedNodeTitle("女明星角色三视图", ["女明星角色三视图"])).toBe("女明星角色三视图_copy1");
expect(nextCopiedNodeTitle("女明星角色三视图", ["女明星角色三视图", "女明星角色三视图_copy1"])).toBe("女明星角色三视图_copy2");
expect(nextCopiedNodeTitle("女明星角色三视图", ["女明星角色三视图_copy1", "女明星角色三视图_copy3"])).toBe("女明星角色三视图_copy4");
});
test("复制已有副本时仍使用原始名称计算下一序号", () => {
expect(nextCopiedNodeTitle("女明星角色三视图_copy1", ["女明星角色三视图", "女明星角色三视图_copy1"])).toBe("女明星角色三视图_copy2");
});
test("兼容旧版空格 Copy 后缀", () => {
expect(nextCopiedNodeTitle("女明星角色三视图 Copy", ["女明星角色三视图", "女明星角色三视图 Copy"])).toBe("女明星角色三视图_copy1");
});
test("同一批粘贴可以通过预留标题连续分配序号", () => {
const titles = new Set(["节点", "节点_copy1"]);
const first = nextCopiedNodeTitle("节点", titles);
titles.add(first);
const second = nextCopiedNodeTitle("节点", titles);
expect([first, second]).toEqual(["节点_copy2", "节点_copy3"]);
});
});