2022-03-25 15:35:56 +08:00
|
|
|
import { nextTick, ref } from 'vue'
|
2022-04-12 01:10:25 +08:00
|
|
|
import { describe, expect, it, vi } from 'vitest'
|
2022-02-11 11:03:15 +08:00
|
|
|
import { EVENT_CODE } from '@element-plus/constants'
|
2021-11-29 15:58:44 +08:00
|
|
|
import { useModal } from '../use-modal'
|
2020-09-09 21:18:08 +08:00
|
|
|
|
|
|
|
describe('useModal', () => {
|
2022-02-21 14:28:22 +08:00
|
|
|
it('should work when ref value changed', async () => {
|
2020-09-09 21:18:08 +08:00
|
|
|
const visible = ref(false)
|
2022-04-12 01:10:25 +08:00
|
|
|
const handleClose = vi.fn()
|
2020-09-09 21:18:08 +08:00
|
|
|
|
|
|
|
useModal(
|
|
|
|
{
|
|
|
|
handleClose,
|
|
|
|
},
|
2021-09-04 19:29:28 +08:00
|
|
|
visible
|
2020-09-09 21:18:08 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
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)
|
|
|
|
})
|
|
|
|
})
|