Files
Mujoco_WASM/web_platform/src/app/components/WorkbenchHeader.test.tsx
T
chenlin 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
feat(web-platform): release V0.9.4 前端设计优化
2026-09-09 13:15:46 +08:00

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();
});
});