import { expect, test } from "bun:test";
import { renderToStaticMarkup } from "react-dom/server";
import { CanvasBatchTableNodeContent } from "@/components/canvas/canvas-batch-table-node";
import { createCanvasNode } from "@/lib/canvas/canvas-project-domain";
import { canvasThemes } from "@/lib/canvas-theme";
import { CanvasNodeType } from "@/types/canvas";
const noop = () => {};
for (const mode of ["light", "dark"] as const) {
test(`merged batch table keeps local controls and dynamic cells in ${mode} mode`, () => {
const output = createCanvasNode(CanvasNodeType.Image, { x: 0, y: 0 }, { content: "data:image/png;base64,AA==" });
const node = createCanvasNode(CanvasNodeType.BatchTable, { x: 0, y: 0 }, {
batchTable: {
operation: "creative", concurrency: 1, aiGenerated: true, contentKind: "storyboard",
textColumns: [{ id: "detail", label: "画面细节" }],
referenceColumns: [{ id: "reference-1", label: "参考图 1" }, { id: "reference-2", label: "参考图 2" }],
rows: [{ id: "row", enabled: true, inputNodeIds: [], prompt: "@参考图1 保留提示", cells: { detail: "已编辑内容" }, outputNodeId: output.id }],
},
});
const render = (readOnly = false) => renderToStaticMarkup();
const editable = render();
expect(editable).toContain('aria-label="减少一组参考图"');
expect(editable).toContain('aria-label="任务 1 提示词"');
expect(editable).toContain("点击定位到画布节点");
expect(editable).toContain("画面细节");
expect(editable).toContain("已编辑内容");
expect(editable).toContain("创建视频脚本");
const readOnly = render(true);
expect(readOnly).not.toContain('aria-label="减少一组参考图"');
for (const textarea of readOnly.match(/