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    
@skava/modules / ___dist / chain-able / test / Chainable.js
Size: Mime:
"use strict";

const log = require('fliplog');

const _require = require("../src"),
      Chainable = _require.Chainable,
      ChainedMap = _require.ChainedMap,
      ChainedSet = _require.ChainedSet,
      Chain = _require.Chain;

test('can use core Chainable', () => {
  const chain = new Chainable();
});
test('ChainedSet inherits Chainable', () => {
  const chain = new ChainedSet();
  expect(chain instanceof Chainable).toBe(true);
});
test('ChainedMap inherits Chainable', () => {
  const chain = new ChainedMap();
  expect(chain instanceof Chainable).toBe(true);
});
test('Chain(compose) inherits Chainable', () => {
  const chain = new Chain();
  expect(chain instanceof Chainable).toBe(true);
}); // 'Chainable core methods work as expected'

test('.end', () => {
  const parent = {
    isParent: true
  };
  const chain = new Chainable(parent);
  expect(chain.end()).toEqual(parent);
});
test('.when', () => {
  expect.assertions(2);
  const chain = new Chainable();
  chain.when(true, c => expect(!!c).toBe(true));
  chain.when(false, () => {}, c => expect(!!c).toBe(true));
});
test('.has', () => {
  expect.assertions(2);
  const chain = new Chain();
  expect(chain.has('not-set') === false).toBe(true);
  chain.set('isset', true);
  expect(chain.has('isset') === true).toBe(true);
});
test('.delete', () => {
  expect.assertions(1);
  const chain = new Chain();
  chain.set('isset', true);
  chain.delete('isset');
  expect(chain.has('isset') === false).toBe(true);
});
test('.clear', () => {
  expect.assertions(1);
  const chain = new Chain();
  chain.set('isset', true);
  chain.clear();
  expect(chain.has('isset') === false).toBe(true);
});