mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-15 01:41:20 +08:00
34 lines
756 B
TypeScript
34 lines
756 B
TypeScript
|
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)
|
||
|
})
|
||
|
})
|