UNPKG

@cheprasov/worker-thread

Version:

The WorkerThread wraps a Web Worker with a Promise, also the class creates a worker script on the fly (without having to create separate worker files). You can 'inline' your worker function in the same js file as main logic.

43 lines (33 loc) 1.64 kB
import BlobFileFactory, { objectUrlMap } from './BlobFileFactory'; describe('BlobFileFactory', () => { beforeEach(() => { global.URL = { createObjectURL: jest.fn((blob) => { return `objectURL:${blob.size}`; }), }; objectUrlMap.clear(); }); describe('createJavaScriptObjectUrl', () => { it('should create new object url by code', () => { expect(BlobFileFactory.createJavaScriptObjectUrl('foo')).toEqual('objectURL:3'); expect(BlobFileFactory.createJavaScriptObjectUrl('fooBar')).toEqual('objectURL:6'); }); it('should return object url from cache if useCache is true', () => { objectUrlMap.set('foo', 'cached-url'); expect(BlobFileFactory.createJavaScriptObjectUrl('foo', true)).toEqual('cached-url'); }); it('should not return object url from cache if useCache is false', () => { objectUrlMap.set('foo', 'cached-url'); expect(BlobFileFactory.createJavaScriptObjectUrl('foo', false)).toEqual('objectURL:3'); }); it('should add new object url to cache if useCache is true', () => { expect(BlobFileFactory.createJavaScriptObjectUrl('foo', true)).toEqual('objectURL:3'); expect(objectUrlMap.get('foo')).toEqual('objectURL:3'); }); it('should not add new object url to cache if useCache is false', () => { expect(BlobFileFactory.createJavaScriptObjectUrl('foo', false)).toEqual('objectURL:3'); expect(objectUrlMap.has('foo')).toBeFalsy(); }); }); });