feat(*): 创作工作台 - 完善画布生成、模型定价与创建流程

This commit is contained in:
ddcat666 committed 2026-10-10 04:40:20 +08:00
1 parent 508cad2b4e
commit 611949d6cc
39 files changed
+735 -242

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
import { describe, expect, test } from "bun:test";
import { DEFAULT_CANVAS_AGENT_SKILL_ID, ensureDefaultCanvasAgentSkill } from "@/services/skill-defaults";
function skill(skillId: string, isAdded = true) {
return { skillId, skillName: skillId, isAdded } as never;
}
describe("ensureDefaultCanvasAgentSkill", () => {
test("keeps an already added default skill without writing", async () => {
let added = 0;
const result = await ensureDefaultCanvasAgentSkill({
listAdded: async () => ({ skills: [skill(DEFAULT_CANVAS_AGENT_SKILL_ID)] }),
get: async () => { throw new Error("must not read catalog"); },
add: async () => { added += 1; return { skill: skill(DEFAULT_CANVAS_AGENT_SKILL_ID) }; },
});
expect(result.skills[0].skillId).toBe(DEFAULT_CANVAS_AGENT_SKILL_ID);
expect(added).toBe(0);
});
test("installs the default skill once when it is not added", async () => {
let listCalls = 0;
let added = 0;
const result = await ensureDefaultCanvasAgentSkill({
listAdded: async () => ({ skills: listCalls++ === 0 ? [] : [skill(DEFAULT_CANVAS_AGENT_SKILL_ID)] }),
get: async () => ({ skill: skill(DEFAULT_CANVAS_AGENT_SKILL_ID, false) }),
add: async () => { added += 1; return { skill: skill(DEFAULT_CANVAS_AGENT_SKILL_ID) }; },
});
expect(result.skills[0].skillId).toBe(DEFAULT_CANVAS_AGENT_SKILL_ID);
expect(added).toBe(1);
expect(listCalls).toBe(2);
});
});