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