feat(*): 创作工作台 - 完善媒体上传预览与连线交互并修复任务章节及日志筛选
This commit is contained in:
1 parent
95b004ec0f
commit
068a8daea6
56 files changed
+3316
-274
No files matched your search
@@ -0,0 +1,21 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { parseChapterAssetBreakdown } from "../src/lib/canvas/chapter-asset-breakdown";
|
||||
|
||||
describe("章节三类资产解析", () => {
|
||||
test("无角色章节仍可提取场景和道具", () => {
|
||||
const result = parseChapterAssetBreakdown(JSON.stringify({ characters: [], scenes: [{ name: "车站", description: "空旷站台", prompt: "夜间站台" }], props: [{ name: "信封", description: "牛皮纸信封", prompt: "褐色信封特写" }] }));
|
||||
expect(result.characters).toEqual([]);
|
||||
expect(result.scenes[0].name).toBe("车站");
|
||||
expect(result.props[0].name).toBe("信封");
|
||||
});
|
||||
test("缺失数组或缺失描述不能静默跳过", () => {
|
||||
expect(() => parseChapterAssetBreakdown('{"characters":[]}')).toThrow("缺少");
|
||||
expect(() => parseChapterAssetBreakdown('{"characters":[],"scenes":[{"name":"车站"}],"props":[]}')).toThrow("description");
|
||||
});
|
||||
test("支持围栏 JSON 和无资产章节", () => {
|
||||
expect(parseChapterAssetBreakdown('```json\n{"characters":[],"scenes":[],"props":[]}\n```')).toEqual({ characters: [], scenes: [], props: [] });
|
||||
});
|
||||
test("忽略正文解释但仍校验完整资产对象", () => {
|
||||
expect(parseChapterAssetBreakdown('提取结果如下:\n{"characters":[],"scenes":[],"props":[]}\n以上为全部结果。')).toEqual({ characters: [], scenes: [], props: [] });
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user