完善角色规范参考图上传入口
Project CI / Repository checks (pull_request) Successful in 1m17s
Project CI / Frontend tests (pull_request) Failing after 2m11s
Project CI / Backend tests (pull_request) Successful in 4m4s
Project CI / Native shell tests (pull_request) Successful in 15m31s

为角色规范参考图槽位绑定菜单边界引用

补充参考图来源菜单重复点击回归测试
This commit is contained in:
2026-08-12 16:47:25 +08:00
parent bb14cf80b4
commit d9e1a34b7c
2 changed files with 36 additions and 0 deletions
@@ -106,6 +106,30 @@ function UiDesignHarness({
) : null;
}
function CharacterSpecReferenceMenuHarness({
onRequestUpload = vi.fn(),
}: {
onRequestUpload?: (target: UploadTarget) => void;
}) {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const referenceButtonRef = createRef<HTMLButtonElement>();
return (
<ImageCanvasSpecGenerationPanelView
dialog={createSpecDialog({ generationReferences: [] })}
style={{ left: 10, top: 20 }}
generationReferenceButtonRef={referenceButtonRef}
isGenerationReferenceMenuOpen={isMenuOpen}
setIsGenerationReferenceMenuOpen={setIsMenuOpen}
setIsPickingGenerationReferenceFromCanvas={vi.fn()}
renderEditorPortal={(node) => node}
buildPortalMenuStyle={() => ({ position: 'fixed', left: 0, top: 0 })}
onUpdateSpecFormValue={vi.fn()}
onRequestUpload={onRequestUpload}
onSubmit={vi.fn()}
/>
);
}
function IconSpecHarness({
playSetting = '回合制占点',
artStyle = '低多边形',
@@ -314,6 +338,17 @@ describe('ImageCanvasSpecGenerationPanelView', () => {
);
});
it('keeps the character spec reference source menu open after clicking the add slot', () => {
render(<CharacterSpecReferenceMenuHarness />);
const addButton = screen.getByRole('button', { name: '参考图' });
fireEvent.click(addButton);
expect(screen.getByRole('menu', { name: '参考图来源' })).toBeTruthy();
fireEvent.click(addButton);
expect(screen.queryByRole('menu', { name: '参考图来源' })).toBeNull();
});
it('uses gameplay and art style hints for icon specs', () => {
renderPanel({
dialog: createSpecDialog({
@@ -385,6 +385,7 @@ export function ImageCanvasSpecGenerationPanelView({
))}
{!isUiDesignDialog && dialog.specType !== 'icon' ? (
<ImageCanvasReferenceSlot
buttonRef={generationReferenceButtonRef}
tone="default"
icon={<ImagePlus className="h-4 w-4" aria-hidden="true" />}
label="参考图"