UNPKG

playable

Version:

Video player based on HTML5Video

58 lines (49 loc) 1.64 kB
import 'jsdom-global/register'; import { expect } from 'chai'; import * as sinon from 'sinon'; import createPlayerTestkit from '../../../../testkit'; import { VideoEvent } from '../../../../constants'; describe('PlayControl', () => { let testkit; let control: any; let eventEmitter: any; beforeEach(() => { testkit = createPlayerTestkit(); eventEmitter = testkit.getModule('eventEmitter'); control = testkit.getModule('playControl'); }); describe('constructor', () => { it('should create instance ', () => { expect(control).to.exist; expect(control.view).to.exist; }); }); describe('API', () => { it('should have method for destroying', () => { const spy = sinon.spy(control, '_unbindEvents'); expect(control.destroy).to.exist; control.destroy(); expect(spy.called).to.be.true; }); }); describe('video events listeners', () => { it('should call callback on playback state change', async function() { const spy = sinon.spy(control, '_updatePlayingState'); control._bindEvents(); await eventEmitter.emitAsync(VideoEvent.STATE_CHANGED, {}); expect(spy.called).to.be.true; }); }); describe('internal methods', () => { it('should change playback state', () => { const playSpy = sinon.stub(control._engine, 'play'); const pauseSpy = sinon.stub(control._engine, 'pause'); control._playVideo(); expect(playSpy.called).to.be.true; control._pauseVideo(); expect(pauseSpy.called).to.be.true; control._engine.play.restore(); control._engine.pause.restore(); }); }); });