UNPKG

axax

Version:

A library of async iterator extensions for JavaScript including ```map```, ```reduce```, ```filter```, ```flatMap```, ```pipe``` and [more](https://github.com/jamiemccrindle/axax/blob/master/docs/API.md#functions).

39 lines (38 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const interval_1 = require("../interval"); const of_1 = require("../of"); const take_1 = require("../take"); const throttle_1 = require("../throttle"); const toArray_1 = require("../toArray"); const wait_1 = require("../wait"); test("throttle", async () => { const result = await toArray_1.toArray(throttle_1.throttle(() => wait_1.wait(100))(of_1.of(1, 2, 3, 4, 5, 6))); expect(result).toEqual([1]); }); test("throttle one value", async () => { const startTime = Date.now(); const result = await toArray_1.toArray(throttle_1.throttle(() => wait_1.wait(100))(of_1.of(1))); const endTime = Date.now(); expect(result).toEqual([1]); expect(endTime - startTime).toBeLessThan(100); }); // todo: fix these // test("throttle interval", async () => { // const result = await toArray( // throttle(() => wait(100))(take(50)(interval(10))) // ); // expect(result).toEqual([0, 10, 20, 30, 40]); // }); test("throttle timer count", async () => { let counter = 0; const result = await toArray_1.toArray(throttle_1.throttle(() => { counter++; return wait_1.wait(100); })(take_1.take(50)(interval_1.interval(10)))); expect(counter).toBeLessThan(10); }); test("throttle increasing timeout", async () => { const result = await toArray_1.toArray(throttle_1.throttle(val => wait_1.wait(200 * (val + 1)))(take_1.take(10)(interval_1.interval(100)))); expect(result).toEqual([0, 2, 8]); });