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).

38 lines (37 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const debounce_1 = require("../debounce"); const interval_1 = require("../interval"); const of_1 = require("../of"); const take_1 = require("../take"); const toArray_1 = require("../toArray"); const wait_1 = require("../wait"); test("debounce", async () => { const result = await toArray_1.toArray(debounce_1.debounce(() => wait_1.wait(100))(of_1.of(1, 2, 3, 4, 5, 6))); expect(result).toEqual([6]); }); test("debounce one value", async () => { const startTime = Date.now(); const result = await toArray_1.toArray(debounce_1.debounce(() => wait_1.wait(100))(of_1.of(1))); const endTime = Date.now(); expect(result).toEqual([1]); expect(endTime - startTime).toBeGreaterThanOrEqual(100); }); // test("debounce interval", async () => { // const result = await toArray( // debounce(() => wait(100))(take(50)(interval(10))) // ); // expect(result).toEqual([9, 19, 29, 39, 49]); // }); test("debounce timer count", async () => { let counter = 0; const result = await toArray_1.toArray(debounce_1.debounce(() => { counter++; return wait_1.wait(100); })(take_1.take(50)(interval_1.interval(10)))); expect(counter).toBeLessThan(10); }); test("debounce increasing timeout", async () => { const result = await toArray_1.toArray(debounce_1.debounce(val => wait_1.wait(200 * (val + 1)))(take_1.take(10)(interval_1.interval(100)))); expect(result).toEqual([1, 7, 9]); });