import { fireEvent, render, screen } from '@testing-library/react'; import { describe, expect, it, vi } from 'vitest'; import { Modal } from './Modal'; describe('Modal close policy', () => { it('keeps an explicitly locked form open on mask and Escape but permits the close button', () => { const close = vi.fn(); render( 表单 , ); fireEvent.mouseDown(document.querySelector('.ui-modal__mask')!); fireEvent.keyDown(document, { key: 'Escape' }); expect(close).not.toHaveBeenCalled(); fireEvent.click(screen.getByRole('button', { name: '关闭' })); expect(close).toHaveBeenCalledOnce(); }); it('preserves mask closing by default for existing consumers', () => { const close = vi.fn(); render( 内容 , ); fireEvent.mouseDown(document.querySelector('.ui-modal__mask')!); expect(close).toHaveBeenCalledOnce(); }); });