playable
Version:
Video player based on HTML5Video
74 lines • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
require("jsdom-global/register");
var chai_1 = require("chai");
var sinon = (0, tslib_1.__importStar)(require("sinon"));
var logger_1 = (0, tslib_1.__importDefault)(require("./logger"));
var keyboard_interceptor_1 = (0, tslib_1.__importDefault)(require("./keyboard-interceptor"));
describe('KeyboardInterceptor', function () {
var element;
var interceptor;
var keydownEvent = new Event('keydown');
beforeEach(function () {
element = document.createElement('div');
});
describe('', function () {
afterEach(function () {
interceptor.destroy();
});
it('should intercept and broadcast keydown events', function () {
var _a;
var testKeyCode1 = 10;
var testKeyCode2 = 20;
var callbacks = (_a = {},
_a[testKeyCode1] = sinon.spy(),
_a[testKeyCode2] = sinon.spy(),
_a);
interceptor = new keyboard_interceptor_1.default(element, callbacks);
keydownEvent.keyCode = testKeyCode1;
element.dispatchEvent(keydownEvent);
(0, chai_1.expect)(callbacks[testKeyCode1].calledWith(keydownEvent)).to.be.true;
(0, chai_1.expect)(callbacks[testKeyCode2].called).to.be.false;
keydownEvent.keyCode = testKeyCode2;
element.dispatchEvent(keydownEvent);
(0, chai_1.expect)(callbacks[testKeyCode2].calledWith(keydownEvent)).to.be.true;
});
it('should have ability to add callbacks in runtime', function () {
var _a;
var testKeyCode = 30;
var additionCallbacks = (_a = {},
_a[testKeyCode] = sinon.spy(),
_a);
interceptor = new keyboard_interceptor_1.default(element);
keydownEvent.keyCode = testKeyCode;
element.dispatchEvent(keydownEvent);
(0, chai_1.expect)(additionCallbacks[testKeyCode].called).to.be.false;
interceptor.addCallbacks(additionCallbacks);
keydownEvent.keyCode = testKeyCode;
element.dispatchEvent(keydownEvent);
(0, chai_1.expect)(additionCallbacks[testKeyCode].called).to.be.true;
});
});
it('should clear everything on destroy', function () {
var _a;
var testKeyCode = 10;
var callbacks = (_a = {},
_a[testKeyCode] = sinon.spy(),
_a);
interceptor = new keyboard_interceptor_1.default(element, callbacks);
interceptor.destroy();
keydownEvent.keyCode = testKeyCode;
element.dispatchEvent(keydownEvent);
(0, chai_1.expect)(callbacks[testKeyCode].called).to.be.false;
});
it('should call warn on destroy after destroy', function () {
var warnSpy = sinon.stub(logger_1.default, 'warn');
interceptor = new keyboard_interceptor_1.default(element);
interceptor.destroy();
interceptor.destroy();
(0, chai_1.expect)(warnSpy.calledOnce).to.be.true;
warnSpy.restore();
});
});
//# sourceMappingURL=keyboard-interceptor.spec.js.map