cb3fb47561
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled
web-platform-ci / TypeScript, lint, unit, build (pull_request) Has been cancelled
web-platform-ci / Playwright E2E (pull_request) Has been cancelled
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { fireEvent, render, screen } from '@testing-library/react';
|
|
import { WorkbenchHeader } from './WorkbenchHeader';
|
|
const fn = () => {};
|
|
describe('WorkbenchHeader', () => {
|
|
it('保留导入、源代码直达、命令与侧栏入口,不再重复仿真控制', () => {
|
|
const source = vi.fn(),
|
|
files = vi.fn(),
|
|
left = vi.fn();
|
|
render(
|
|
<WorkbenchHeader
|
|
loading={false}
|
|
hasProject
|
|
leftOpen
|
|
rightOpen
|
|
onFiles={files}
|
|
onFolder={fn}
|
|
onOpenSource={source}
|
|
onToggleLeft={left}
|
|
onToggleRight={fn}
|
|
onCommands={fn}
|
|
/>,
|
|
);
|
|
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.getByRole('button', { name: '源代码' })).toBeVisible();
|
|
expect(screen.queryByRole('button', { name: '工程' })).not.toBeInTheDocument();
|
|
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: '打开命令面板' })).toBeVisible();
|
|
expect(screen.queryByRole('button', { name: '▶ 播放' })).not.toBeInTheDocument();
|
|
});
|
|
});
|