/* @vitest-environment jsdom */ import { fireEvent, render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { describe, expect, it, vi } from 'vitest'; import { PlatformFloatingMenu, PlatformFloatingMenuItem, } from './PlatformFloatingMenu'; describe('PlatformFloatingMenu', () => { it('renders menu items with accessible menu semantics', async () => { const onRename = vi.fn(); const user = userEvent.setup(); render( 重命名 , ); expect(screen.getByRole('menu', { name: '项目菜单' })).toBeTruthy(); await user.click(screen.getByRole('menuitem', { name: '重命名' })); expect(onRename).toHaveBeenCalledOnce(); }); it('keeps pointer events from leaking to canvas-style parents', () => { const onParentPointerDown = vi.fn(); const onMenuPointerDown = vi.fn(); render(
重命名
, ); fireEvent.pointerDown(screen.getByRole('menu', { name: '项目菜单' })); expect(onMenuPointerDown).toHaveBeenCalledOnce(); expect(onParentPointerDown).not.toHaveBeenCalled(); }); });