UNPKG

boiler-task-karma

Version:
104 lines (79 loc) 2.67 kB
'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'];