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";

var _ava = _interopRequireDefault(require("ava"));

var _Plugin = _interopRequireDefault(require("../src/Plugin"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

let StringifyPlugin = class StringifyPlugin {
  constructor(...args) {
    this.values = args;
  }

  apply() {
    return JSON.stringify(this.values);
  }

};
(0, _ava.default)('is Chainable', t => {
  const parent = {
    parent: true
  };
  const plugin = new _Plugin.default(parent);
  t.is(plugin.end(), parent);
});
(0, _ava.default)('use', t => {
  const plugin = new _Plugin.default();
  const instance = plugin.use(StringifyPlugin, ['alpha', 'beta']);
  t.is(instance, plugin);
  t.is(plugin.get('plugin'), StringifyPlugin);
  t.deepEqual(plugin.get('args'), ['alpha', 'beta']);
});
(0, _ava.default)('tap', t => {
  const plugin = new _Plugin.default();
  plugin.use(StringifyPlugin, ['alpha', 'beta']);
  const instance = plugin.tap(args => ['gamma', 'delta']);
  t.is(instance, plugin);
  t.deepEqual(plugin.get('args'), ['gamma', 'delta']);
});
(0, _ava.default)('init', t => {
  const plugin = new _Plugin.default();
  plugin.use(StringifyPlugin);
  const instance = plugin.init((Plugin, args) => {
    t.deepEqual(args, []);
    return new Plugin('gamma', 'delta');
  });
  const initialized = plugin.get('init')(plugin.get('plugin'), plugin.get('args'));
  t.is(instance, plugin);
  t.true(initialized instanceof StringifyPlugin);
  t.deepEqual(initialized.values, ['gamma', 'delta']);
});
(0, _ava.default)('toConfig', t => {
  const plugin = new _Plugin.default();
  plugin.use(StringifyPlugin);
  const initialized = plugin.toConfig();
  t.true(initialized instanceof StringifyPlugin);
  t.deepEqual(initialized.values, []);
});