Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"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]);
});