import { ref, nextTick } from 'vue' import { EVENT_CODE } from '@element-plus/utils/aria' import { useModal } from '../use-modal' describe('useModal', () => { test('should work when ref value changed', async () => { const visible = ref(false) const handleClose = jest.fn() useModal( { handleClose, }, visible ) expect(handleClose).not.toHaveBeenCalled() visible.value = true await nextTick() const event = new KeyboardEvent('keydown', { code: EVENT_CODE.esc, }) document.dispatchEvent(event) expect(handleClose).toHaveBeenCalledTimes(1) visible.value = false await nextTick() document.dispatchEvent(event) expect(handleClose).toHaveBeenCalledTimes(1) }) })