'use strict' ;
const assert = require('assert' );
const {
CloseEvent,
ErrorEvent,
Event,
MessageEvent
} = require('../lib/event-target' );
describe('Event' , () => {
describe('#ctor' , () => {
it('takes a `type` argument' , () => {
const event = new Event('foo' );
assert .strictEqual(event.type, 'foo' );
});
});
describe('Properties' , () => {
describe('`target`' , () => {
it('is enumerable and configurable' , () => {
const descriptor = Object.getOwnPropertyDescriptor(
Event.prototype,
'target'
);
assert .strictEqual(descriptor.configurable, true );
assert .strictEqual(descriptor.enumerable, true );
assert .ok(descriptor.get !== undefined);
assert .ok(descriptor.set === undefined);
});
it('defaults to `null`' , () => {
const event = new Event('foo' );
assert .strictEqual(event.target, null );
});
});
describe('`type`' , () => {
it('is enumerable and configurable' , () => {
const descriptor = Object.getOwnPropertyDescriptor(
Event.prototype,
'type'
);
assert .strictEqual(descriptor.configurable, true );
assert .strictEqual(descriptor.enumerable, true );
assert .ok(descriptor.get !== undefined);
assert .ok(descriptor.set === undefined);
});
});
});
});
describe('CloseEvent' , () => {
it('inherits from `Event`' , () => {
assert .ok(CloseEvent.prototype instanceof Event);
});
describe('#ctor' , () => {
it('takes a `type` argument' , () => {
const event = new CloseEvent('foo' );
assert .strictEqual(event.type, 'foo' );
});
it('takes an optional `options` argument' , () => {
const event = new CloseEvent('close' , {
code: 1000,
reason: 'foo' ,
wasClean: true
});
assert .strictEqual(event.type, 'close' );
assert .strictEqual(event.code, 1000);
assert .strictEqual(event.reason, 'foo' );
assert .strictEqual(event.wasClean, true );
});
});
describe('Properties' , () => {
describe('`code`' , () => {
it('is enumerable and configurable' , () => {
const descriptor = Object.getOwnPropertyDescriptor(
CloseEvent.prototype,
'code'
);
assert .strictEqual(descriptor.configurable, true );
assert .strictEqual(descriptor.enumerable, true );
assert .ok(descriptor.get !== undefined);
assert .ok(descriptor.set === undefined);
});
it('defaults to 0' , () => {
const event = new CloseEvent('close' );
assert .strictEqual(event.code, 0);
});
});
describe('`reason`' , () => {
it('is enumerable and configurable' , () => {
const descriptor = Object.getOwnPropertyDescriptor(
CloseEvent.prototype,
'reason'
);
assert .strictEqual(descriptor.configurable, true );
assert .strictEqual(descriptor.enumerable, true );
assert .ok(descriptor.get !== undefined);
assert .ok(descriptor.set === undefined);
});
it('defaults to an empty string' , () => {
const event = new CloseEvent('close' );
assert .strictEqual(event.reason, '' );
});
});
describe('`wasClean`' , () => {
it('is enumerable and configurable' , () => {
const descriptor = Object.getOwnPropertyDescriptor(
CloseEvent.prototype,
'wasClean'
);
assert .strictEqual(descriptor.configurable, true );
assert .strictEqual(descriptor.enumerable, true );
assert .ok(descriptor.get !== undefined);
assert .ok(descriptor.set === undefined);
});
it('defaults to false' , () => {
const event = new CloseEvent('close' );
assert .strictEqual(event.wasClean, false );
});
});
});
});
describe('ErrorEvent' , () => {
it('inherits from `Event`' , () => {
assert .ok(ErrorEvent.prototype instanceof Event);
});
describe('#ctor' , () => {
it('takes a `type` argument' , () => {
const event = new ErrorEvent('foo' );
assert .strictEqual(event.type, 'foo' );
});
it('takes an optional `options` argument' , () => {
const error = new Error('Oops' );
const event = new ErrorEvent('error' , { error, message: error.message });
assert .strictEqual(event.type, 'error' );
assert .strictEqual(event.error, error);
assert .strictEqual(event.message, error.message);
});
});
describe('Properties' , () => {
describe('`error`' , () => {
it('is enumerable and configurable' , () => {
const descriptor = Object.getOwnPropertyDescriptor(
ErrorEvent.prototype,
'error'
);
assert .strictEqual(descriptor.configurable, true );
assert .strictEqual(descriptor.enumerable, true );
assert .ok(descriptor.get !== undefined);
assert .ok(descriptor.set === undefined);
});
it('defaults to `null`' , () => {
const event = new ErrorEvent('error' );
assert .strictEqual(event.error, null );
});
});
describe('`message`' , () => {
it('is enumerable and configurable' , () => {
const descriptor = Object.getOwnPropertyDescriptor(
ErrorEvent.prototype,
'message'
);
assert .strictEqual(descriptor.configurable, true );
assert .strictEqual(descriptor.enumerable, true );
assert .ok(descriptor.get !== undefined);
assert .ok(descriptor.set === undefined);
});
it('defaults to an empty string' , () => {
const event = new ErrorEvent('error' );
assert .strictEqual(event.message, '' );
});
});
});
});
describe('MessageEvent' , () => {
it('inherits from `Event`' , () => {
assert .ok(MessageEvent.prototype instanceof Event);
});
describe('#ctor' , () => {
it('takes a `type` argument' , () => {
const event = new MessageEvent('foo' );
assert .strictEqual(event.type, 'foo' );
});
it('takes an optional `options` argument' , () => {
const event = new MessageEvent('message' , { data: 'bar' });
assert .strictEqual(event.type, 'message' );
assert .strictEqual(event.data, 'bar' );
});
});
describe('Properties' , () => {
describe('`data`' , () => {
it('is enumerable and configurable' , () => {
const descriptor = Object.getOwnPropertyDescriptor(
MessageEvent.prototype,
'data'
);
assert .strictEqual(descriptor.configurable, true );
assert .strictEqual(descriptor.enumerable, true );
assert .ok(descriptor.get !== undefined);
assert .ok(descriptor.set === undefined);
});
it('defaults to `null`' , () => {
const event = new MessageEvent('message' );
assert .strictEqual(event.data, null );
});
});
});
});
quality 97%
¤ Dauer der Verarbeitung: 0.8 Sekunden
¤
*© Formatika GbR, Deutschland