mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Add test case for promise queue
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user