element-plus/packages/test-utils/make-scroll.ts

19 lines
481 B
TypeScript

import sleep from './sleep'
const makeScroll = async (dom: Element, name: 'scrollTop' | 'scrollLeft', offset: number) => {
const eventTarget = dom === document.documentElement ? window : dom
dom[name] = offset
const evt = new CustomEvent('scroll', {
detail: {
target: {
[name]: offset,
},
},
})
eventTarget.dispatchEvent(evt)
// must use setTimeout instead of nextTick to wait dom change
return await sleep()
}
export default makeScroll