修复画布生成配方恢复边界
兼容生成配方未来字段与历史完美像素快照 补齐参数回退、旧版恢复告警和本地参考图上传 收紧生成任务幂等比较与裁扩来源归属 同步画布编辑器设计文档和回归测试
This commit is contained in:
@@ -591,7 +591,10 @@ describe('ImageCanvasGenerationModel', () => {
|
||||
],
|
||||
references: [],
|
||||
});
|
||||
expect(alias).toMatchObject({ ok: true, warnings: [] });
|
||||
expect(alias).toMatchObject({
|
||||
ok: true,
|
||||
warnings: [expect.objectContaining({ fieldIds: ['style'] })],
|
||||
});
|
||||
expect(
|
||||
alias.ok
|
||||
? alias.inputs.fields.find((field) => field.id === 'model')?.value
|
||||
@@ -706,6 +709,50 @@ describe('ImageCanvasGenerationModel', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('materializes and warns about missing action parameters', () => {
|
||||
const decoded = decodeCanvasGenerationInputs({
|
||||
version: 2,
|
||||
action: 'video.generate',
|
||||
fields: [{ id: 'prompt', title: '视频描述', value: '追逐镜头' }],
|
||||
references: [],
|
||||
});
|
||||
|
||||
expect(decoded).toMatchObject({
|
||||
ok: true,
|
||||
inputs: {
|
||||
fields: expect.arrayContaining([
|
||||
expect.objectContaining({ id: 'model', value: DEFAULT_VIDEO_MODEL }),
|
||||
expect.objectContaining({ id: 'durationSeconds', value: 4 }),
|
||||
]),
|
||||
},
|
||||
warnings: expect.arrayContaining([
|
||||
expect.objectContaining({ fieldIds: ['model'] }),
|
||||
expect.objectContaining({ fieldIds: ['durationSeconds'] }),
|
||||
]),
|
||||
});
|
||||
|
||||
const animation = decodeCanvasGenerationInputs({
|
||||
version: 2,
|
||||
action: 'character-animation.generate',
|
||||
fields: [{ id: 'prompt', title: '动作描述', value: '挥手' }],
|
||||
references: [],
|
||||
});
|
||||
expect(animation).toMatchObject({
|
||||
ok: true,
|
||||
inputs: {
|
||||
fields: expect.arrayContaining([
|
||||
expect.objectContaining({ id: 'frameCount', value: 32 }),
|
||||
expect.objectContaining({ id: 'durationSeconds', value: 4 }),
|
||||
]),
|
||||
},
|
||||
warnings: expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
fieldIds: ['frameCount', 'durationSeconds'],
|
||||
}),
|
||||
]),
|
||||
});
|
||||
});
|
||||
|
||||
it('falls invalid sound and character animation parameters back to complete defaults', () => {
|
||||
const sound = decodeCanvasGenerationInputs({
|
||||
version: 2,
|
||||
|
||||
Reference in New Issue
Block a user