ts-prime
Version:
A utility library for JavaScript and Typescript.
80 lines (79 loc) • 2.9 kB
JavaScript
;
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]]);
});
});