element-plus/packages/test-utils/trigger-event.ts
zazzaz 355a778a2c
Feat/datepicker && datetimepicker (#326)
* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* chore: update

* Feat/form (#342)

* feat(form): add form component

fix #125

* test(form): add test code

* docs(form): add form doc

* feat: add uitls merge

* fix(form): fix style

* test(form): add form test code

* refactor(form): review changes

* test(form): use idiomatic vue-test-util methods

* feat(core): bump vue version

* feat(form): rewrite label wrap

* feat(form): fix tons of bugs

* fix(form): reuse ts extension

* refactor(form): move out label width computation

* fix(form): fix tons of bugs

* fix(form): test

Co-authored-by: 286506460 <286506460@qq.com>

* Feat/select (#381)

* fix: resove conflict

* feat: select basic usage

* feat: select basic usage

* feat: select feature create item

* fix: fix option data insert

* refactor: select

* fix: fix parse error

* feat: select test

* fix: select add popper

* fix: update select option

* fix: add select dependency

* fix: add index.ts file

* fix(select): clean up

* fix(select): some refactor

* fix(select): some update

* fix(select): fix all test cases

Co-authored-by: helen <yinhelen.hlj@qq.com>

Co-authored-by: Herrington Darkholme <2883231+HerringtonDarkholme@users.noreply.github.com>
Co-authored-by: 286506460 <286506460@qq.com>
Co-authored-by: helen <yinhelen.hlj@qq.com>
2020-10-03 20:13:19 +08:00

28 lines
602 B
TypeScript

/**
* Trigger event
* mouseenter, mouseleave, mouseover, keyup, change, click
* @param {Element} elm
* @param {String} name
* @param {*} opts
*/
const triggerEvent = (elm, name, ...opts) => {
let eventName
if (/^mouse|click/.test(name)) {
eventName = 'MouseEvents'
} else if (/^key/.test(name)) {
eventName = 'KeyboardEvent'
} else {
eventName = 'HTMLEvents'
}
const evt = document.createEvent(eventName)
evt.initEvent(name, ...opts)
elm.dispatchEvent
? elm.dispatchEvent(evt)
: elm.fireEvent('on' + name, evt)
return elm
}
export default triggerEvent