js-hub / utils /promisesQueue.spec.ts
coyotte508's picture
coyotte508 HF Staff
Add 1 files
21dd449 verified
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]);
});
});