import { fireEvent, render, screen } from '@testing-library/react';
import { SimulationControls } from './SimulationControls';
describe('SimulationControls', () => {
it('迁移后保留播放、单步、重置、速度及就绪限制', () => {
const pause = vi.fn(),
step = vi.fn(),
reset = vi.fn(),
speed = vi.fn();
const props = {
ready: true,
paused: true,
loading: false,
speed: 1,
onTogglePause: pause,
onStep: step,
onReset: reset,
onSpeed: speed,
};
const { rerender } = render();
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(pause).toHaveBeenCalledOnce();
expect(step).toHaveBeenCalledOnce();
expect(reset).toHaveBeenCalledOnce();
expect(speed).toHaveBeenCalledWith(2);
rerender();
expect(screen.getByRole('button', { name: '⏸ 暂停' })).toBeEnabled();
expect(screen.getByRole('button', { name: '单步' })).toBeDisabled();
rerender();
expect(screen.getByRole('button', { name: '▶ 播放' })).toBeDisabled();
expect(screen.getByRole('button', { name: '重置' })).toBeDisabled();
});
});