events: add a few tests

PR-URL: https://github.com/nodejs/node/pull/35806
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
This commit is contained in:
Benjamin Gruenbaum authored and Node.js GitHub Bot committed 2020-11-03 17:16:55 +00:00
1 parent 1bc1f847ca
commit ee749ba2c6
2 files changed
+34 -2

No files matched your search

+2 -2
View File
@@ -72,10 +72,10 @@ const isTrusted = ObjectGetOwnPropertyDescriptor({
}, 'isTrusted').get;
class Event {
constructor(type, options) {
constructor(type, options = null) {
if (arguments.length === 0)
throw new ERR_MISSING_ARGS('type');
if (options != null)
if (options !== null)
validateObject(options, 'options');
const { cancelable, bubbles, composed } = { ...options };
this[kCancelable] = !!cancelable;
+32
View File
@@ -414,6 +414,7 @@ let asyncTest = Promise.resolve();
}
{
// Event Statics
strictEqual(Event.NONE, 0);
strictEqual(Event.CAPTURING_PHASE, 1);
strictEqual(Event.AT_TARGET, 2);
@@ -424,6 +425,8 @@ let asyncTest = Promise.resolve();
strictEqual(e.eventPhase, Event.AT_TARGET);
}), { once: true });
target.dispatchEvent(new Event('foo'));
// Event is a function
strictEqual(Event.length, 1);
}
{
@@ -485,3 +488,32 @@ let asyncTest = Promise.resolve();
eventTarget.dispatchEvent(event);
strictEqual(event.target, eventTarget);
}
{
// Event target exported keys
const eventTarget = new EventTarget();
deepStrictEqual(Object.keys(eventTarget), []);
deepStrictEqual(Object.getOwnPropertyNames(eventTarget), []);
const parentKeys = Object.keys(Object.getPrototypeOf(eventTarget)).sort();
const keys = ['addEventListener', 'dispatchEvent', 'removeEventListener'];
deepStrictEqual(parentKeys, keys);
}
{
// Subclassing
class SubTarget extends EventTarget {}
const target = new SubTarget();
target.addEventListener('foo', common.mustCall());
target.dispatchEvent(new Event('foo'));
}
{
// Test event order
const target = new EventTarget();
let state = 0;
target.addEventListener('foo', common.mustCall(() => {
strictEqual(state, 0);
state++;
}));
target.addEventListener('foo', common.mustCall(() => {
strictEqual(state, 1);
}));
target.dispatchEvent(new Event('foo'));
}