import { fireEvent, render, screen } from '@testing-library/react'; import { UrdfImportOptionsDialog } from './UrdfImportOptionsDialog'; describe('UrdfImportOptionsDialog', () => { it('默认选择关节驱动器和摄像头传感器', () => { const onConfirm = vi.fn(); render( {}} />, ); expect(screen.getByRole('checkbox', { name: /为关节添加驱动器/ })).toBeChecked(); expect(screen.getByRole('checkbox', { name: /添加传感器/ })).toBeChecked(); expect(screen.getByLabelText('摄像头固连 Body')).toHaveValue('head_link'); fireEvent.change(screen.getByLabelText('摄像头位置 X'), { target: { value: '0.2' } }); fireEvent.click(screen.getByRole('button', { name: '转换并加载' })); expect(onConfirm).toHaveBeenCalledWith( expect.objectContaining({ addActuators: true, addSensors: true, sensorType: 'camera', cameraMountBody: 'head_link', cameraPosition: [0.2, 0, 0.05], cameraDirection: '+X', }), ); }); it('允许分别关闭自动生成项', () => { const onConfirm = vi.fn(); render( {}} />, ); fireEvent.click(screen.getByRole('checkbox', { name: /为关节添加驱动器/ })); fireEvent.click(screen.getByRole('checkbox', { name: /添加传感器/ })); fireEvent.click(screen.getByRole('button', { name: '转换并加载' })); expect(onConfirm).toHaveBeenCalledWith( expect.objectContaining({ addActuators: false, addSensors: false, sensorType: 'camera' }), ); }); it('可以不添加组件并继续加载', () => { const onSkip = vi.fn(); render( {}} onSkip={onSkip} />); fireEvent.click(screen.getByRole('button', { name: '不添加,直接加载' })); expect(onSkip).toHaveBeenCalledOnce(); }); });