source: frontend/node_modules/jake/test/integration/helpers.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.6 KB
Line 
1var exec = require('child_process').exec;
2
3var helpers = new (function () {
4 var _tests;
5 var _names = [];
6 var _name;
7 var _callback;
8 var _runner = function () {
9 if ((_name = _names.shift())) {
10 console.log('Running ' + _name);
11 _tests[_name]();
12 }
13 else {
14 _callback();
15 }
16 };
17
18 this.exec = function () {
19 var args = Array.prototype.slice.call(arguments);
20 var arg;
21 var cmd = args.shift();
22 var opts = {};
23 var callback;
24 // Optional opts/callback or callback/opts
25 while ((arg = args.shift())) {
26 if (typeof arg == 'function') {
27 callback = arg;
28 }
29 else {
30 opts = arg;
31 }
32 }
33
34 cmd += ' --trace';
35 var execOpts = opts.execOpts ? opts.execOpts : {};
36 exec(cmd, execOpts, function (err, stdout, stderr) {
37 var out = helpers.trim(stdout);
38 if (err) {
39 if (opts.breakOnError === false) {
40 return callback(err);
41 }
42 else {
43 throw err;
44 }
45 }
46 if (stderr) {
47 callback(stderr);
48 }
49 else {
50 callback(out);
51 }
52 });
53 };
54
55 this.trim = function (s) {
56 var str = s || '';
57 return str.replace(/^\s*|\s*$/g, '');
58 };
59
60 this.parse = function (s) {
61 var str = s || '';
62 str = helpers.trim(str);
63 str = str.replace(/'/g, '"');
64 return JSON.parse(str);
65 };
66
67 this.run = function (tests, callback) {
68 _tests = tests;
69 _names = Object.keys(tests);
70 _callback = callback;
71 _runner();
72 };
73
74 this.next = function () {
75 _runner();
76 };
77
78})();
79
80module.exports = helpers;
Note: See TracBrowser for help on using the repository browser.