d8b935317d
抽出素材栏、生成器、舞台工具栏和画布世界视图 补充各拆分视图的聚焦测试 更新 TRACKING.md 记录第三十四阶段验证
42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
/* @vitest-environment jsdom */
|
|
|
|
import { fireEvent, render, screen, within } from '@testing-library/react';
|
|
import { createRef } from 'react';
|
|
import { describe, expect, it, vi } from 'vitest';
|
|
|
|
import { ImageCanvasBottomToolbarView } from './ImageCanvasBottomToolbarView';
|
|
|
|
describe('ImageCanvasBottomToolbarView', () => {
|
|
it('renders the canvas tools and forwards tool changes', () => {
|
|
const switchTool = vi.fn();
|
|
render(
|
|
<ImageCanvasBottomToolbarView
|
|
specToolWrapRef={createRef<HTMLSpanElement>()}
|
|
effectiveTool="generate"
|
|
onSwitchTool={switchTool}
|
|
/>,
|
|
);
|
|
|
|
const toolbar = screen.getByRole('toolbar', { name: 'AI画布工具栏' });
|
|
|
|
expect(
|
|
within(toolbar)
|
|
.getByRole('button', { name: '生成工具' })
|
|
.getAttribute('aria-pressed'),
|
|
).toBe('true');
|
|
expect(
|
|
within(toolbar)
|
|
.getByRole('button', { name: '选择工具' })
|
|
.getAttribute('aria-pressed'),
|
|
).toBe('false');
|
|
|
|
fireEvent.click(within(toolbar).getByRole('button', { name: '抓手工具' }));
|
|
fireEvent.click(within(toolbar).getByRole('button', { name: '生成规范' }));
|
|
fireEvent.click(within(toolbar).getByRole('button', { name: '文字工具' }));
|
|
|
|
expect(switchTool).toHaveBeenNthCalledWith(1, 'hand');
|
|
expect(switchTool).toHaveBeenNthCalledWith(2, 'spec');
|
|
expect(switchTool).toHaveBeenNthCalledWith(3, 'text');
|
|
});
|
|
});
|