UNPKG

playable

Version:

Video player based on HTML5Video

74 lines 3.22 kB
"use strict"; 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