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
JavaScript
;
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]);
});