53 lines
2.1 KiB
TypeScript
53 lines
2.1 KiB
TypeScript
import { fireEvent, render, screen } from '@testing-library/react';
|
|
import { UrdfImportOptionsDialog } from './UrdfImportOptionsDialog';
|
|
|
|
describe('UrdfImportOptionsDialog', () => {
|
|
it('默认选择关节驱动器和摄像头传感器', () => {
|
|
const onConfirm = vi.fn();
|
|
render(
|
|
<UrdfImportOptionsDialog
|
|
open
|
|
path="robot.urdf"
|
|
mountBodies={['base', 'head_link']}
|
|
onConfirm={onConfirm}
|
|
onSkip={() => {}}
|
|
/>,
|
|
);
|
|
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(
|
|
<UrdfImportOptionsDialog open path="robot.urdf" onConfirm={onConfirm} onSkip={() => {}} />,
|
|
);
|
|
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(<UrdfImportOptionsDialog open path="robot.urdf" onConfirm={() => {}} onSkip={onSkip} />);
|
|
fireEvent.click(screen.getByRole('button', { name: '不添加,直接加载' }));
|
|
expect(onSkip).toHaveBeenCalledOnce();
|
|
});
|
|
});
|