acebase/spec/async-task-batch.spec.js
2022-10-31 22:53:17 +01:00

18 lines
704 B
JavaScript

const { AsyncTaskBatch } = require('../dist/cjs/async-task-batch');
describe('Async task batches', () => {
it('works', async () => {
let currentIndex = 0, expectedResults = [];
const batch = new AsyncTaskBatch(10);
for (let i = 0; i < 1000; i++) {
batch.add(() => {
const ms = Math.floor(Math.random() * 10); // task to run between 0-10ms
expectedResults[currentIndex] = ms;
currentIndex++;
return new Promise((resolve) => setTimeout(() => resolve(ms), ms));
});
}
const results = await batch.finish();
expect(results).toEqual(expectedResults);
}, 10e3);
});