lion/packages/overlays/test-helpers/mimicClick.js
Thijs Louisse 412270fa1a fix(overlays): enhanced and documented closeOnOutsideClick
Co-authored-by: Konstantinos Norgias <Konstantinos.Norgias@ing.com>
2021-03-18 15:38:38 +01:00

21 lines
561 B
JavaScript

async function sleep(t = 0) {
return new Promise(resolve => {
setTimeout(() => {
resolve(true);
}, t);
});
}
/**
* @param {HTMLElement} el
* @param {{isAsync?:boolean, releaseElement?: HTMLElement}} [config]
*/
export async function mimicClick(el, { isAsync, releaseElement } = { isAsync: false }) {
const releaseEl = releaseElement || el;
el.dispatchEvent(new MouseEvent('mousedown'));
if (isAsync) {
await sleep();
}
releaseEl.dispatchEvent(new MouseEvent('click'));
releaseEl.dispatchEvent(new MouseEvent('mouseup'));
}