UNPKG

1.08 kBJavaScriptView Raw
1/**
2 * Run karma.
3 * @memberof module:apeman-dev-commons-testing/lib
4 * @function runKarma
5 * @param {string} command - Karma command.
6 * @param {string} conf - Karma conf file path.
7 * @param {options} [options] - Optional setting.
8 * @param {function} [callback] - Callback when done.
9 */
10
11"use strict";
12
13var argx = require('argx'),
14 async = require('async'),
15 h = require('./_helper'),
16 execcli = require('execcli');
17
18function _karmaBin() {
19 try {
20 return require.resolve('karma/bin/karma');
21 } catch (e) {
22 return 'karma'
23 }
24}
25
26/** @lends runKarma */
27function runKarma(command, conf, options, callback) {
28 var args = argx(arguments);
29 callback = args.pop('function') || argx.noop;
30 options = args.pop('object') || {};
31 command = args.shift('string');
32 conf = args.shift('string');
33
34 h.start();
35
36 async.series([
37 function (callback) {
38 execcli(_karmaBin(), command, conf, options || {}, callback);
39 }
40 ], function (err) {
41 h.end(err);
42 callback(err);
43 })
44}
45
46module.exports = runKarma;
\No newline at end of file