import {ChunkInfo} from '../upload' import {Pool} from './pool' const m = jest.fn() const task = (): Promise => new Promise((resolve, _) => { m() resolve() }) describe('test Pool for control concurrency', () => { const pool = new Pool(task, 2) test('pool.js', async () => { const chunk = new Blob() const data = [ {chunk, index: 0}, {chunk, index: 1}, {chunk, index: 2}, {chunk, index: 3}, {chunk, index: 4}, {chunk, index: 5} ] return Promise.all(data.map(async value => { await pool.enqueue(value) expect(pool.processing.length).toBeLessThanOrEqual(2) })).then(() => { expect(m.mock.calls.length).toBe(6) }) }) })