Repository URL to install this package:
|
Version:
1.2.1 ▾
|
"use strict";
const log = require('fliplog');
const _require = require("../../exports"),
keys = _require.keys,
remove = _require.remove,
values = _require.values,
isReal = _require.isReal,
isEmpty = _require.isEmpty,
not = _require.not,
always = _require.always,
concat = _require.concat;
const _require2 = require("../../src/deps/loop"),
arrayEach = _require2.arrayEach,
baseEach = _require2.baseEach,
baseFor = _require2.baseFor,
forEach = _require2.forEach,
forOwn = _require2.forOwn,
filterWhere = _require2.filterWhere,
mapObjOrArray = _require2.mapObjOrArray,
mapAcum = _require2.mapAcum,
mapKey = _require2.mapKey,
mapObj = _require2.mapObj,
sort = _require2.sort,
sortBy = _require2.sortBy,
sortByR = _require2.sortByR,
sortWith = _require2.sortWith,
comparator = _require2.comparator,
keyVal = _require2.keyVal,
flipped = _require2.flipped;
test('forOwn', () => {
const object = {
eh: true,
oh: 1,
canada: 'yes'
};
forOwn(object, function (value, key) {
delete object[key];
});
expect(keys(object).length).toBe(0);
});
test('flipped: forOwn', () => {
const object = {
eh: true,
oh: 1,
canada: 'yes'
};
flipped.forOwn(object, key => delete object[key]);
expect(keys(object).length).toBe(0);
});
test('flipped: forEach with `remove`', () => {
const object = {
eh: true,
oh: 1,
canada: 'yes' // curried, nice
};
flipped.forEach(object, remove(object));
expect(keys(object).length).toBe(0);
});
test('flipped: mapKey with .concat', () => {
const appendEh = concat('_', 'eh');
const object = {
eh: true,
oh: 1,
canada: 'yes'
};
const result = flipped.mapKey(object, appendEh);
const ogKeys = keys(object);
const resultKeys = keys(result);
const ogToResultKeys = mapObjOrArray(keys(object), appendEh);
expect(resultKeys).toEqual(ogToResultKeys);
});
test('flipped: mapKey', () => {
const object = {
eh: true,
oh: 1,
canada: 'yes'
};
const result = flipped.mapKey(object, always(''));
expect(keys(object).length).toBe(3);
expect(keys(result).filter(not(isEmpty)).length).toBe(0);
});
test('flipped: map', () => {
// @TODO use cast/pairs
// const object = {eh: true, oh: 1, canada: 'yes'}
const array = ['eh', true, 'oh', 1, 'canada', 'yes'];
const ogLength = array.length;
const result = flipped.mapArray(array, always(null));
expect(values(array).length).toBe(ogLength);
expect(values(result).filter(isReal).length).toBe(0);
});
const comparatorMsg = `comparator:
builds a comparator function
for sorting out of a simple predicate
that reports whether the first param is smaller`;
test(comparatorMsg, () => {
const compareLessThan = comparator((a, b) => a < b);
eq([3, 1, 8, 1, 2, 5].sort(compareLessThan), [1, 1, 2, 3, 5, 8]);
});