Files
ttstd-infinite-canvas/web/test/model-capabilities.test.ts
Jaylea 46bd187600 test(model-capability): 视频模型 - 补充前端默认提示词上限回归测试
#511 只改了后端与前端两处默认值,但没有前端测试锁定该默认值,任何一次
「顺手改回小值」都不会被 CI 拦住。这里补上回归断言:

- 默认常量必须为 8000,且各协议默认能力配置都引用它;
- 文本/图片默认上限(32000)不受本次调整影响,避免顺带改变判定口径。

同时锁住画布实际合成量级(技能上下文预算 32000)所需的余量。
2026-09-15 21:47:04 +08:00

34 lines
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import assert from "node:assert/strict";
import test from "node:test";
// Bun 直接执行 TypeScript 测试时需要保留扩展名;生产 tsconfig 不包含 test/。
import { DEFAULT_VIDEO_PROMPT_MAX_CHARS, defaultModelCapabilityConfig, normalizeVideoValue } from "../src/lib/model-capabilities.ts";
test("switching to MiniMax H3 replaces an unsupported 720p value with 768P", () => {
const profile = defaultModelCapabilityConfig("minimax-video", "MiniMax-H3").video!;
assert.deepEqual(normalizeVideoValue(profile, { seconds: "11", ratio: "16:9", resolution: "720" }), {
seconds: "11",
ratio: "16:9",
resolution: "768P",
});
});
// 视频提示词由「输入框文本 + 连线内容 + 技能上下文」合成,技能上下文预算为 32000,
// 合成结果远长于用户手输内容。默认上限过小会把正常可用的画布工作流拦在本地预检。
// 这里锁定默认值本身,避免被改回偏小值(前端放行/后端拒绝的判定必须同源)。
test("video prompt default allows a composed canvas prompt", () => {
assert.equal(DEFAULT_VIDEO_PROMPT_MAX_CHARS, 8000);
for (const protocol of [undefined, "seedance-videos-compatible", "agnes-video", "volcengine-ark-video"]) {
const profile = defaultModelCapabilityConfig(protocol, "test-model");
assert.equal(profile.video!.references.promptMaxChars, DEFAULT_VIDEO_PROMPT_MAX_CHARS);
}
});
test("raising the video default leaves text and image limits untouched", () => {
// 只放宽视频默认值,避免顺带改变其它能力的判定口径。
const profile = defaultModelCapabilityConfig("seedance-videos-compatible", "sd-2.5");
assert.equal(profile.text!.references.promptMaxChars, 32000);
assert.equal(profile.image!.references.promptMaxChars, 32000);
});