UNPKG

@webda/core

Version:

Expose API with Lambda

55 lines 2.49 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { suite, test } from "@testdeck/mocha"; import * as assert from "assert"; import { Throttler } from "./throttler.js"; let ThrottlerTest = class ThrottlerTest { async test() { let resolvers = []; let t = new Throttler(2); t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P1"); t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P2"); t.execute(() => new Promise(resolve => resolvers.push(resolve)), "P3"); t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P4"); t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P5"); t.queue(() => new Promise((_, reject) => resolvers.push(reject)), "P6"); t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P7"); assert.strictEqual(t.getSize(), 7); // @ts-ignore resolvers.shift()(); assert.strictEqual(t.getInProgress().length, 2); t.setConcurrency(1); // @ts-ignore resolvers.shift()(); await new Promise(resolve => setImmediate(resolve)); let curs = t.getInProgress(); assert.strictEqual(curs.length, 1, `Currents ${curs}`); t.setConcurrency(3); assert.strictEqual(t.getInProgress().length, 3); // REFACTOR . >= 4.0.0 | replace("waitForCompletion", "wait") let p = t.waitForCompletion(); // END_REFACTOR resolvers.forEach(r => r()); await new Promise(resolve => setImmediate(resolve)); resolvers.forEach(r => r()); await p; await t.wait(); } async staticMethod() { await Throttler.run([async () => { }], 2); } }; __decorate([ test ], ThrottlerTest.prototype, "test", null); __decorate([ test ], ThrottlerTest.prototype, "staticMethod", null); ThrottlerTest = __decorate([ suite ], ThrottlerTest); //# sourceMappingURL=throttler.spec.js.map