webpack-bootstrap
Version:
Easily implement webpack for any kind of front-end app
51 lines (37 loc) • 1.57 kB
JavaScript
;
var _inquirer = require('inquirer');
var _inquirer2 = _interopRequireDefault(_inquirer);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _proxyquire = require('proxyquire');
var _proxyquire2 = _interopRequireDefault(_proxyquire);
var _config = require('../configs/config.vue');
var _config2 = _interopRequireDefault(_config);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('generate-config', () => {
it('should create a prompt when there is no .wbootrc found', () => {
sinon.stub(_inquirer2.default, 'prompt').returns(Promise.reject());
const generateConfig = (0, _proxyquire2.default)('./generate-config', {
'./config-detect': {
default: () => undefined
}
}).default;
generateConfig();
expect(_inquirer2.default.prompt.called).to.be.true;
});
it('should not create prompt and wrap vue config when set liberary as vue in .wbootrc', () => {
const generateConfig = (0, _proxyquire2.default)('./generate-config', {
'./config-detect': {
default: () => 'somepath'
}
}).default;
sinon.stub(_inquirer2.default, 'prompt');
sinon.stub(_fs2.default, 'readFileSync').returns('{"liberary":"vue"}');
expect(_inquirer2.default.prompt.called).to.be.false;
return generateConfig().then(webpackConfigWithVueLoaders => {
_config2.default.loaders.forEach(loaderItem => {
expect(webpackConfigWithVueLoaders.module.rules.includes(loaderItem)).to.be.true;
});
});
});
});