Files
Genarrative/apps/ai-game-creator-shell/tests/uiDesignResourceBridge.test.ts
T
k88936 544f9ac040 重写 UI 设计文档桥接单测到当前入口
- 退役 ensureUiDesignResourceForPrototype / findLinkedUiDesignResource 的 6 条旧用例已随实现删除而无对应导出,测试文件整体失败
- 改为覆盖 createUiDesignDocFromImages:空图片列表拒绝且不调用命令,正常调用透传项目身份与设计图引用
2026-09-23 21:35:57 +08:00

44 lines
1.4 KiB
TypeScript

import { describe, expect, it, vi } from 'vitest';
import { createUiDesignDocFromImages } from '../src/features/ui-editor/uiDesignResourceBridge';
describe('ui design resource bridge', () => {
it('rejects an empty image list without invoking the command', async () => {
const invoke = vi.fn();
await expect(
createUiDesignDocFromImages({
projectPath: '/project',
expectedProjectId: 'project-1',
images: [],
invoke,
}),
).rejects.toThrow('请至少选择一张界面图');
expect(invoke).not.toHaveBeenCalled();
});
it('creates a document through the command with the project identity injected', async () => {
const created = {
asset: { id: 'ui-1' },
manifest: { projectId: 'project-1' },
relativePath: 'ui/UI 设计 1.json',
imageIds: ['image-a'],
committedProjectRevision: 7,
};
const invoke = vi.fn().mockResolvedValue(created);
const result = await createUiDesignDocFromImages({
projectPath: '/project',
expectedProjectId: 'project-1',
images: [{ assetId: 'image-a', path: null }],
invoke,
});
expect(invoke).toHaveBeenCalledWith('create_ui_design_doc_from_images', {
input: {
projectPath: '/project',
expectedProjectId: 'project-1',
images: [{ assetId: 'image-a', path: null }],
},
});
expect(result).toBe(created);
});
});