fix: harden list mode and batch generation flow
This commit is contained in:
@@ -85,7 +85,7 @@ describe("batch creation table", () => {
|
||||
|
||||
expect(withoutText).not.toContain("repeat(0,");
|
||||
expect(withoutText).toContain("68px");
|
||||
expect(withoutText).toContain("repeat(3, 88px)");
|
||||
expect(withoutText).toContain("repeat(3, 72px)");
|
||||
expect(withText).toContain("repeat(1, minmax(168px, 0.75fr))");
|
||||
});
|
||||
|
||||
|
||||
31
web/test/list-mode-generator.test.ts
Normal file
31
web/test/list-mode-generator.test.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
|
||||
import { parseListModeJson } from "@/pages/canvas/list-mode-generator";
|
||||
|
||||
describe("list mode response parsing", () => {
|
||||
test("parses plain JSON", () => {
|
||||
expect(parseListModeJson('{"columns":["卖点"],"rows":[{"卖点":"轻便"}]}')).toEqual({
|
||||
columns: ["卖点"],
|
||||
rows: [{ 卖点: "轻便" }],
|
||||
});
|
||||
});
|
||||
|
||||
test("parses markdown JSON with surrounding explanation", () => {
|
||||
expect(parseListModeJson('结果如下:\n```json\n{"columns":["标题"],"rows":[{"标题":"新品"}]}\n```\n')).toEqual({
|
||||
columns: ["标题"],
|
||||
rows: [{ 标题: "新品" }],
|
||||
});
|
||||
});
|
||||
|
||||
test("normalizes duplicate columns and non-string cells", () => {
|
||||
expect(parseListModeJson('{"columns":["卖点","卖点","细节"],"rows":[{"卖点":["轻","薄"],"细节":123}]}')).toEqual({
|
||||
columns: ["卖点", "细节"],
|
||||
rows: [{ 卖点: "轻、薄", 细节: "123" }],
|
||||
});
|
||||
});
|
||||
|
||||
test("rejects malformed responses", () => {
|
||||
expect(parseListModeJson("模型暂时无法分析")).toBeNull();
|
||||
expect(parseListModeJson('{"columns":[],"rows":[]}')).toBeNull();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user