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 _Rule = _interopRequireDefault(require("../src/Rule"));

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

(0, _ava.default)('is Chainable', t => {
  const parent = {
    parent: true
  };
  const rule = new _Rule.default(parent);
  t.is(rule.end(), parent);
});
(0, _ava.default)('shorthand methods', t => {
  const rule = new _Rule.default();
  const obj = {};
  rule.shorthands.map(method => {
    obj[method] = 'alpha';
    t.is(rule[method]('alpha'), rule);
  });
  t.deepEqual(rule.entries(), obj);
});
(0, _ava.default)('use', t => {
  const rule = new _Rule.default();
  const instance = rule.use('babel').end();
  t.is(instance, rule);
  t.true(rule.uses.has('babel'));
});
(0, _ava.default)('pre', t => {
  const rule = new _Rule.default();
  const instance = rule.pre();
  t.is(instance, rule);
  t.deepEqual(rule.get('enforce'), 'pre');
});
(0, _ava.default)('post', t => {
  const rule = new _Rule.default();
  const instance = rule.post();
  t.is(instance, rule);
  t.deepEqual(rule.get('enforce'), 'post');
});
(0, _ava.default)('sets methods', t => {
  const rule = new _Rule.default();
  const instance = rule.include.add('alpha').add('beta').end().exclude.add('alpha').add('beta').end();
  t.is(instance, rule);
  t.deepEqual(rule.include.values(), ['alpha', 'beta']);
  t.deepEqual(rule.exclude.values(), ['alpha', 'beta']);
});
(0, _ava.default)('toConfig empty', t => {
  const rule = new _Rule.default();
  t.deepEqual(rule.toConfig(), {});
});
(0, _ava.default)('toConfig with values', t => {
  const rule = new _Rule.default();
  rule.include.add('alpha').add('beta').end().exclude.add('alpha').add('beta').end().post().pre().test(/\.js$/).use('babel').loader('babel-loader').options({
    presets: ['alpha']
  });
  t.deepEqual(rule.toConfig(), {
    test: /\.js$/,
    enforce: 'pre',
    include: ['alpha', 'beta'],
    exclude: ['alpha', 'beta'],
    use: [{
      loader: 'babel-loader',
      options: {
        presets: ['alpha']
      }
    }]
  });
});
(0, _ava.default)('merge empty', t => {
  const rule = new _Rule.default();
  const obj = {
    enforce: 'pre',
    test: /\.js$/,
    include: ['alpha', 'beta'],
    exclude: ['alpha', 'beta'],
    use: {
      babel: {
        loader: 'babel-loader',
        options: {
          presets: ['alpha']
        }
      }
    }
  };
  const instance = rule.merge(obj);
  t.is(instance, rule);
  t.deepEqual(rule.toConfig(), {
    enforce: 'pre',
    test: /\.js$/,
    include: ['alpha', 'beta'],
    exclude: ['alpha', 'beta'],
    use: [{
      loader: 'babel-loader',
      options: {
        presets: ['alpha']
      }
    }]
  });
});
(0, _ava.default)('merge with values', t => {
  const rule = new _Rule.default();
  rule.test(/\.js$/).post().include.add('gamma').add('delta').end().use('babel').loader('babel-loader').options({
    presets: ['alpha']
  });
  rule.merge({
    test: /\.jsx$/,
    enforce: 'pre',
    include: ['alpha', 'beta'],
    exclude: ['alpha', 'beta'],
    use: {
      babel: {
        options: {
          presets: ['beta']
        }
      }
    }
  });
  t.deepEqual(rule.toConfig(), {
    test: /\.jsx$/,
    enforce: 'pre',
    include: ['gamma', 'delta', 'alpha', 'beta'],
    exclude: ['alpha', 'beta'],
    use: [{
      loader: 'babel-loader',
      options: {
        presets: ['alpha', 'beta']
      }
    }]
  });
});