| 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]); | |
| }); | |
| }); | |