Add test case for promise queue

This commit is contained in:
guerler
2021-10-14 14:50:35 -04:00
parent 3adbb84e79
commit dec3e5c89d
2 changed files with 23 additions and 1 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ export class LastQueue {
this.pendingPromise = false;
}
enqueue(action, ...args) {
async enqueue(action, ...args) {
return new Promise((resolve, reject) => {
this.nextPromise = { action, args, resolve, reject };
this.dequeue();
+22
View File
@@ -0,0 +1,22 @@
import { LastQueue } from "./promise-queue";
const x = 10;
const lastQueue = new LastQueue(x);
async function testPromise(args) {
return new Promise((resolve) => resolve(args));
}
describe("test last-queue", () => {
it("should only resolve the first and last promise", async () => {
const results = [];
for (let i = 0; i < x; i++) {
lastQueue.enqueue(testPromise, i).then((response) => {
results.push(response);
});
}
await lastQueue.enqueue(testPromise, x).then((response) => {
results.push(response);
});
expect(results).toEqual([0, x]);
});
});