element-plus/packages/hooks/__tests__/use-modal.spec.ts
jeremywu ef92b6c11c
### feat: add dialog (#197)
* Add overlay component; Dialog component almost done

* feat(dialog): add use-lockscreen

* feat(dialog): coding completed awaiting tests

* feat(dialog): finish writing test cases

* fix test failures

* Address PR comments

* fallback some changes
2020-09-09 21:18:08 +08:00

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)
})
})