@testing-library/user-event
Version:
Fire events the same way the user does
35 lines (32 loc) • 1.17 kB
JavaScript
import './behavior/click.js';
import './behavior/cut.js';
import './behavior/keydown.js';
import './behavior/keypress.js';
import './behavior/keyup.js';
import './behavior/paste.js';
import { behavior } from './behavior/registry.js';
import { wrapEvent } from './wrapEvent.js';
function dispatchEvent(config, target, event, preventDefault = false) {
var ref;
const type = event.type;
const behaviorImplementation = preventDefault ? ()=>{} : (ref = behavior[type]) === null || ref === void 0 ? void 0 : ref(event, target, config);
if (behaviorImplementation) {
event.preventDefault();
let defaultPrevented = false;
Object.defineProperty(event, 'defaultPrevented', {
get: ()=>defaultPrevented
});
Object.defineProperty(event, 'preventDefault', {
value: ()=>{
defaultPrevented = event.cancelable;
}
});
wrapEvent(()=>target.dispatchEvent(event));
if (!defaultPrevented) {
behaviorImplementation();
}
return !defaultPrevented;
}
return wrapEvent(()=>target.dispatchEvent(event));
}
export { dispatchEvent };