diff --git a/__tests__/kernel-event.js b/__tests__/kernel-event.js new file mode 100644 index 00000000..c8931c1c --- /dev/null +++ b/__tests__/kernel-event.js @@ -0,0 +1,30 @@ +import Chimee from 'index'; +describe('kernel-events', () => { + let chimee; + beforeEach(() => { + chimee = new Chimee({ + wrapper: document.createElement('div'), + }); + }); + afterEach(() => { + chimee.destroy(); + }); + test('heartbeat check', () => { + const fn = jest.fn(); + chimee.on('heartbeat', fn); + chimee.__dispatcher.kernel.emit('heartbeat'); + expect(fn).toHaveBeenCalledTimes(1); + }); + test('mediaInfo check', () => { + const fn = jest.fn(); + chimee.on('mediaInfo', fn); + chimee.__dispatcher.kernel.emit('mediaInfo'); + expect(fn).toHaveBeenCalledTimes(1); + }); + test('error check', () => { + const fn = jest.fn(); + chimee.on('error', fn); + expect(() => chimee.__dispatcher.kernel.emit('error')).toThrow(); + expect(fn).toHaveBeenCalledTimes(1); + }); +}); diff --git a/__tests__/silentload.js b/__tests__/silentload.js index 49e683e4..a90c70ee 100644 --- a/__tests__/silentload.js +++ b/__tests__/silentload.js @@ -64,6 +64,8 @@ describe('$silentLoad', () => { // oldVideo.dispatchEvent(new Event('timeupdate')); // await expect(result).resolves.toBe(); // }); + + test('normal run', async () => { const result = player.$silentLoad('http://cdn.toxicjohann.com/%E4%BA%8E%E6%98%AF.mp4'); await Promise.resolve(); @@ -228,6 +230,20 @@ describe('$silentLoad', () => { expect(player.src).toBe('http://cdn.toxicjohann.com/lostStar.mp4'); expect(Log.data.error).toEqual([[ "chimee's silentload", 'MEDIA_ELEMENT_ERROR: Format error' ]]); }); + test('kernel error', async () => { + const result = player.$silentLoad('http://cdn.toxicjohann.com/%E4%BA%8E%E6%98%AF.mp4'); + await Promise.resolve(); + // simulate video error + player.__dispatcher._silentLoadTempKernel.emit('error', { + errmsg: 'test error', + errno: 500, + }); + await expect(result).rejects.toEqual(new Error('test error')); + expect(player.__dispatcher.kernel).toBe(oldKernel); + expect(player.__dispatcher.dom.videoElement).toBe(oldVideo); + expect(player.src).toBe('http://cdn.toxicjohann.com/lostStar.mp4'); + expect(Log.data.error).toEqual([[ "chimee's silent bump into a kernel error", 'test error' ]]); + }); test('error in repeat times', async () => { const result = player.$silentLoad('http://cdn.toxicjohann.com/%E4%BA%8E%E6%98%AF.mp4', { repeatTimes: 1 }); await Promise.resolve(); diff --git a/bundle-size/common.html b/bundle-size/common.html index 7fa96fdb..560e98f4 100644 --- a/bundle-size/common.html +++ b/bundle-size/common.html @@ -144,7 +144,7 @@