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

var _webpack = require("webpack");

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 ChainedMap', t => {
  const config = new _Config.default();
  config.set('a', 'alpha');
  t.is(config.store.get('a'), 'alpha');
});
(0, _ava.default)('shorthand methods', t => {
  const config = new _Config.default();
  const obj = {};
  config.shorthands.map(method => {
    obj[method] = 'alpha';
    t.is(config[method]('alpha'), config);
  });
  t.deepEqual(config.entries(), obj);
});
(0, _ava.default)('node', t => {
  const config = new _Config.default();
  const instance = config.node.set('__dirname', 'mock').set('__filename', 'mock').end();
  t.is(instance, config);
  t.deepEqual(config.node.entries(), {
    __dirname: 'mock',
    __filename: 'mock'
  });
});
(0, _ava.default)('entry', t => {
  const config = new _Config.default();
  config.entry('index').add('babel-polyfill').add('src/index.js');
  t.true(config.entryPoints.has('index'));
  t.deepEqual(config.entryPoints.get('index').values(), ['babel-polyfill', 'src/index.js']);
});
(0, _ava.default)('plugin empty', t => {
  const config = new _Config.default();
  const instance = config.plugin('stringify').use(StringifyPlugin).end();
  t.is(instance, config);
  t.true(config.plugins.has('stringify'));
  t.deepEqual(config.plugins.get('stringify').get('args'), []);
});
(0, _ava.default)('plugin with args', t => {
  const config = new _Config.default();
  config.plugin('stringify').use(StringifyPlugin, ['alpha', 'beta']);
  t.true(config.plugins.has('stringify'));
  t.deepEqual(config.plugins.get('stringify').get('args'), ['alpha', 'beta']);
});
(0, _ava.default)('toConfig empty', t => {
  const config = new _Config.default();
  t.deepEqual(config.toConfig(), {});
});
(0, _ava.default)('toConfig with values', t => {
  const config = new _Config.default();
  config.output.path('build').end().node.set('__dirname', 'mock').end().target('node').plugin('stringify').use(StringifyPlugin).end().module.rule('compile').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(config.toConfig(), {
    node: {
      __dirname: 'mock'
    },
    output: {
      path: 'build'
    },
    target: 'node',
    plugins: [new StringifyPlugin()],
    module: {
      rules: [{
        include: ['alpha', 'beta'],
        exclude: ['alpha', 'beta'],
        enforce: 'pre',
        test: /\.js$/,
        use: [{
          loader: 'babel-loader',
          options: {
            presets: ['alpha']
          }
        }]
      }]
    }
  });
});
(0, _ava.default)('validate empty', t => {
  const config = new _Config.default();
  const errors = (0, _webpack.validate)(config.toConfig());
  t.is(errors.length, 1);
});
(0, _ava.default)('validate with entry', t => {
  const config = new _Config.default();
  config.entry('index').add('src/index.js');
  const errors = (0, _webpack.validate)(config.toConfig());
  t.is(errors.length, 0);
});
(0, _ava.default)('validate with values', t => {
  const config = new _Config.default();
  config.entry('index').add('babel-polyfill').add('src/index.js').end().output.path('/build').end().node.set('__dirname', 'mock').end().target('node').plugin('stringify').use(StringifyPlugin).end().module.rule('compile').include.add('alpha').add('beta').end().exclude.add('alpha').add('beta').end().post().pre().test(/\.js$/).use('babel').loader('babel-loader').options({
    presets: ['alpha']
  });
  const errors = (0, _webpack.validate)(config.toConfig());
  t.is(errors.length, 0);
});