mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
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:
1 parent
1bc1f847ca
commit
ee749ba2c6
2 files changed
+34
-2
No files matched your search
@@ -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;
|
||||
|
||||
@@ -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'));
|
||||
}
|
||||
Reference in new issue
Block a user