|
import { describe, expect, it } from "vitest"; |
|
import { promisesQueue } from "./promisesQueue"; |
|
|
|
describe("promisesQueue", () => { |
|
it("should handle multiple errors without triggering an uncaughtException", async () => { |
|
const factories = [ |
|
() => Promise.reject(new Error("error 1")), |
|
() => Promise.reject(new Error("error 2")), |
|
() => Promise.reject(new Error("error 3")), |
|
]; |
|
|
|
try { |
|
await promisesQueue(factories, 10); |
|
} catch (err) { |
|
if (!(err instanceof Error)) { |
|
throw err; |
|
} |
|
} |
|
|
|
try { |
|
await promisesQueue(factories, 1); |
|
} catch (err) { |
|
if (!(err instanceof Error)) { |
|
throw err; |
|
} |
|
expect(err.message).toBe("error 1"); |
|
} |
|
}); |
|
|
|
it("should return ordered results", async () => { |
|
const factories = [ |
|
() => Promise.resolve(1), |
|
() => Promise.resolve(2), |
|
() => Promise.resolve(3), |
|
() => Promise.resolve(4), |
|
() => Promise.resolve(5), |
|
() => Promise.resolve(6), |
|
() => Promise.resolve(7), |
|
() => Promise.resolve(8), |
|
() => Promise.resolve(9), |
|
() => Promise.resolve(10), |
|
]; |
|
|
|
const results = await promisesQueue(factories, 3); |
|
|
|
expect(results).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |
|
}); |
|
}); |
|
|