boiler-task-karma
Version:
Build Boilerplate Static Templating
104 lines (79 loc) • 2.67 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (gulp, plugins, config) {
const browserSync = plugins.browserSync;
const coverage = config.coverage;
const environment = config.environment;
const sources = config.sources;
const utils = config.utils;
const devPort = sources.devPort;
const coverageDir = sources.coverageDir;
const addbase = utils.addbase;
const logError = utils.logError;
const isDev = environment.isDev;
const serverName = 'test_server';
const callParent = _boilerUtils2.default.runParentFn;
const runFn = _boilerUtils2.default.runCustomTask;
return cb => {
const karmaConfig = (0, _karmaConfig2.default)(config);
const parentConfig = callParent(arguments, { data: karmaConfig });
const data = parentConfig.data;
const fn = parentConfig.fn;
const task = done => {
const server = new _karma.Server(data, code => {
if (_lodash2.default.isFunction(done)) {
const gulpCb = done;
done = null;
if (coverage) {
if (isDev) {
const bs = browserSync.get(serverName);
bs.exit();
} else {
(0, _coverageBadge2.default)(config).catch(err => {
logError({ err, plugin: '[karma: coverage badge]' });
});
}
}
gulpCb();
process.exit(code);
}
});
server.start();
if (isDev && coverage) {
const bs = browserSync.create(serverName);
let hasRun = false;
server.on('run_complete', () => {
if (!hasRun) {
hasRun = true;
bs.init({
server: {
baseDir: addbase(coverageDir, 'lcov-report')
},
files: [{
match: '**/*.{js,css,html}',
options: {
cwd: coverageDir
}
}],
port: devPort
});
}
});
}
};
return runFn(task, fn, cb);
};
};
var _karma = require('karma');
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _boilerUtils = require('boiler-utils');
var _boilerUtils2 = _interopRequireDefault(_boilerUtils);
var _karmaConfig = require('./karma-config');
var _karmaConfig2 = _interopRequireDefault(_karmaConfig);
var _coverageBadge = require('./coverage-badge');
var _coverageBadge2 = _interopRequireDefault(_coverageBadge);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = exports['default'];