/* @vitest-environment jsdom */
import { fireEvent, render, screen } from '@testing-library/react';
import { Check } from 'lucide-react';
import { expect, test, vi } from 'vitest';
import {
EditorIconButton,
SidebarMediaItem,
} from './ImageCanvasEditorPrimitives';
test('editor icon button delegates accessible icon chrome to the platform primitive', () => {
render(
,
);
const button = screen.getByRole('button', { name: '素材选择模式' });
expect(button.className).toContain('platform-icon-button');
expect(button.className).toContain('image-canvas-editor__icon-button');
expect(button.getAttribute('title')).toBe('选择');
expect(button.getAttribute('aria-pressed')).toBe('true');
expect(button.getAttribute('aria-expanded')).toBe('true');
});
test('editor icon button forwards shared icon button variants', () => {
render(
,
);
const button = screen.getByRole('button', { name: '关闭生成图片' });
expect(button.className).toContain('bg-white/94');
expect(button.className).toContain('image-canvas-editor__generation-close');
});
test('sidebar media item delegates thumbnail chrome to the platform media frame', () => {
const onPrimaryClick = vi.fn();
render(
,
);
const button = screen.getByRole('button', { name: '添加拼图素材' });
const image = screen.getByRole('img', { name: '素材:拼图素材' });
const frame = image.closest('.platform-media-frame');
expect(frame?.className).toContain('platform-media-frame');
expect(frame?.className).toContain('image-canvas-editor__asset-thumb');
expect(screen.getByText('1024 x 1024')).toBeTruthy();
fireEvent.click(button);
expect(onPrimaryClick).toHaveBeenCalledTimes(1);
});