feat(web-platform): release V0.9.3 全模块界面重构
This commit is contained in:
@@ -2,57 +2,41 @@ import { fireEvent, render, screen } from '@testing-library/react';
|
||||
import { WorkbenchHeader } from './WorkbenchHeader';
|
||||
const fn = () => {};
|
||||
describe('WorkbenchHeader', () => {
|
||||
it('透传仿真动作且保留可访问名称', () => {
|
||||
const pause = vi.fn(),
|
||||
step = vi.fn(),
|
||||
reset = vi.fn(),
|
||||
speed = vi.fn(),
|
||||
openSource = vi.fn();
|
||||
it('保留导入、工程菜单、命令与侧栏入口,不再重复仿真控制', () => {
|
||||
const source = vi.fn(),
|
||||
files = vi.fn(),
|
||||
left = vi.fn();
|
||||
render(
|
||||
<WorkbenchHeader
|
||||
paused
|
||||
ready
|
||||
speed={1}
|
||||
theme="dark"
|
||||
loading={false}
|
||||
hasProject
|
||||
leftOpen
|
||||
rightOpen
|
||||
fullscreen={false}
|
||||
center={<span>工具</span>}
|
||||
onFiles={fn}
|
||||
onFiles={files}
|
||||
onFolder={fn}
|
||||
onOpenSource={openSource}
|
||||
onTogglePause={pause}
|
||||
onStep={step}
|
||||
onReset={reset}
|
||||
onSpeed={speed}
|
||||
onToggleLeft={fn}
|
||||
onOpenSource={source}
|
||||
onToggleLeft={left}
|
||||
onToggleRight={fn}
|
||||
onToggleTheme={fn}
|
||||
onHelp={fn}
|
||||
onCommands={fn}
|
||||
onToggleFullscreen={fn}
|
||||
/>,
|
||||
);
|
||||
const sourceButton = screen.getByRole('button', { name: '源代码' });
|
||||
expect(sourceButton).toHaveTextContent('源代码');
|
||||
fireEvent.click(sourceButton);
|
||||
fireEvent.click(screen.getByRole('button', { name: '▶ 播放' }));
|
||||
fireEvent.click(screen.getByRole('button', { name: '单步' }));
|
||||
fireEvent.click(screen.getByRole('button', { name: '重置' }));
|
||||
fireEvent.change(screen.getByLabelText('仿真速度'), { target: { value: '2' } });
|
||||
expect(openSource).toHaveBeenCalledTimes(1);
|
||||
expect(pause).toHaveBeenCalledTimes(1);
|
||||
expect(step).toHaveBeenCalledTimes(1);
|
||||
expect(reset).toHaveBeenCalledTimes(1);
|
||||
expect(speed).toHaveBeenCalledWith(2);
|
||||
expect(screen.getByRole('button', { name: '切换到白天主题' })).toBeInTheDocument();
|
||||
expect(screen.getByRole('heading', { name: 'MuJoCo' })).toBeVisible();
|
||||
fireEvent.change(screen.getByLabelText('打开文件'), {
|
||||
target: { files: [new File(['x'], 'model.xml')] },
|
||||
});
|
||||
expect(files).toHaveBeenCalledOnce();
|
||||
expect(screen.getByLabelText('打开文件夹')).toHaveAttribute('webkitdirectory');
|
||||
expect(screen.queryByRole('button', { name: '源代码' })).not.toBeInTheDocument();
|
||||
fireEvent.click(screen.getByRole('button', { name: '工程' }));
|
||||
fireEvent.click(screen.getByRole('button', { name: '源代码' }));
|
||||
expect(source).toHaveBeenCalledOnce();
|
||||
fireEvent.click(screen.getByRole('button', { name: '隐藏工程面板' }));
|
||||
expect(left).toHaveBeenCalledOnce();
|
||||
expect(screen.getByRole('button', { name: '隐藏工程面板' })).toHaveAttribute(
|
||||
'aria-expanded',
|
||||
'true',
|
||||
);
|
||||
expect(screen.getByRole('button', { name: '打开命令面板' })).toBeInTheDocument();
|
||||
expect(screen.getByRole('button', { name: '进入全屏' })).toBeInTheDocument();
|
||||
expect(screen.getByRole('button', { name: '打开命令面板' })).toBeVisible();
|
||||
expect(screen.queryByRole('button', { name: '▶ 播放' })).not.toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user