Repository URL to install this package:
|
Version:
1.2.6 ▾
|
"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);
});