UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

80 lines (79 loc) 2.9 kB
"use strict"; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); var map_1 = require("./map"); var pipe_1 = require("./pipe"); var take_1 = require("./take"); var filter_1 = require("./filter"); describe('data_first', function () { it('map', function () { var result = map_1.map([1, 2, 3], function (x) { return x * 2; }); expect(result).toEqual([2, 4, 6]); }); it('map.indexed', function () { var result = map_1.map.indexed([0, 0, 0], function (x, i) { return i; }); expect(result).toEqual([0, 1, 2]); }); }); describe('data_last', function () { it('map', function () { var result = pipe_1.pipe([1, 2, 3], map_1.map(function (x) { return x * 2; })); expect(result).toEqual([2, 4, 6]); }); it('map.indexed', function () { var result = pipe_1.pipe([0, 0, 0], map_1.map.indexed(function (x, i) { return i; })); expect(result).toEqual([0, 1, 2]); }); }); describe('pipe', function () { it('with take', function () { var count = jest.fn(); var result = pipe_1.pipe([1, 2, 3], map_1.map(function (x) { count(); return x * 10; }), take_1.take(2)); expect(count).toHaveBeenCalledTimes(2); expect(result).toEqual([10, 20]); }); it('indexed', function () { var count = jest.fn(); var result = pipe_1.pipe([0, 0, 0], map_1.map.indexed(function (x, i) { count(); return i; }), take_1.take(2)); expect(count).toHaveBeenCalledTimes(2); expect(result).toEqual([0, 1]); }); it('indexed: check index and items', function () { var indexes1 = []; var indexes2 = []; var anyItems1 = []; var anyItems2 = []; var result = pipe_1.pipe([1, 2, 3, 4, 5], map_1.map.indexed(function (x, i, items) { anyItems1.push(__spreadArrays(items)); indexes1.push(i); return x; }), filter_1.filter(function (x) { return x % 2 === 1; }), map_1.map.indexed(function (x, i, items) { anyItems2.push(__spreadArrays(items)); indexes2.push(i); return x; })); expect(result).toEqual([1, 3, 5]); expect(indexes1).toEqual([0, 1, 2, 3, 4]); expect(indexes2).toEqual([0, 1, 2]); expect(anyItems1).toEqual([ [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], ]); expect(anyItems2).toEqual([[1], [1, 3], [1, 3, 5]]); }); });