fix(canvas): 画布图片生成 - 参考图超限时停止生成并提示清理连线
保留全部已连接参考图,在首次生成、重试和任务入口统一校验模型上限。
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
|
||||
import { canvasConnectionError } from "../src/lib/canvas/canvas-connection-policy";
|
||||
import { buildGenerationConfig, resolveCanvasGenerationModel } from "../src/lib/canvas/canvas-project-generation";
|
||||
import { assertCanvasImageReferenceLimit, buildGenerationConfig, canvasImageReferenceLimitError, resolveCanvasGenerationModel } from "../src/lib/canvas/canvas-project-generation";
|
||||
import { defaultModelCapabilityConfig } from "../src/lib/model-capabilities";
|
||||
import { groupModelsByDisplayName, modelCompatibilityError, modelGroupReferenceLimits, resolveCompatibleModel } from "../src/lib/model-selection";
|
||||
import { defaultConfig, type AiConfig, type ModelChannel } from "../src/stores/use-config-store";
|
||||
@@ -124,3 +124,20 @@ describe("画布连线能力", () => {
|
||||
expect(canvasConnectionError(config, nodes, [], { fromNodeId: "character", toNodeId: "target" })).toBe("");
|
||||
});
|
||||
});
|
||||
|
||||
describe("图片参考图上限", () => {
|
||||
test("超出当前模型上限时保留全部输入并返回明确错误", () => {
|
||||
const config = policyConfig();
|
||||
const modelCost = config.channels[0]?.modelCosts?.[0];
|
||||
if (!modelCost?.capabilityConfig?.image) throw new Error("缺少图片能力配置");
|
||||
modelCost.capabilityConfig.image.references.maxImages = 1;
|
||||
const references = [
|
||||
{ id: "image-a", name: "image-a.png", type: "image/png", dataUrl: "data:image/png;base64,YQ==" },
|
||||
{ id: "image-b", name: "image-b.png", type: "image/png", dataUrl: "data:image/png;base64,Yg==" },
|
||||
];
|
||||
|
||||
expect(canvasImageReferenceLimitError(config, references)).toContain("最多支持 1 张参考图,当前已连接 2 张");
|
||||
expect(() => assertCanvasImageReferenceLimit(config, references)).toThrow("请移除多余连线后重试");
|
||||
expect(references).toHaveLength(2);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user