Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / chain-able-deps   js

Repository URL to install this package:

Version: 6.0.4 

/ src / loop / __tests__ / reduce / reduce.ts

const log = require('fliplog')
const reduceEntries = require('../../../src/deps/reduce/entries')
const reduce = require('../../../src/deps/reduce')

test('reduce calls .entries()', () => {
  expect.assertions(2)

  var emptyMap = new Map()
  expect(reduceEntries(reduce(emptyMap))({})).toEqual({})

  const map = new Map()
  map.set('eh', true)
  const nested = new Map()
  nested.set('reduced', true)

  const chain = {
    entries() {
      return {
        nested: reduce(nested),
        key: true,
      }
    },
  }
  const reduced = reduce(map)
  const actual = reduceEntries(reduced)({chain})
  const expected = {
    eh: true,
    chain: {
      nested: {
        reduced: true,
        key: true,
      },
    },
  }

  const reducedIgnored = {
    canada: {
      store: chain,
    },
  }
  const ignored = reduceEntries(reduced)(reducedIgnored)
  const ignoredExpected = {
    eh: true,
    chain: {
      nested: {
        reduced: true,
      },
      key: true,
    },
  }

  expect(ignored).toEqual(ignoredExpected)
})