datagrok-tools 4.13.31 → 4.13.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/bin/commands/create.js +1 -0
- package/bin/commands/help.js +3 -5
- package/bin/commands/publish.js +254 -157
- package/bin/commands/test-all.js +75 -347
- package/bin/commands/test.js +100 -239
- package/bin/grok.js +0 -1
- package/bin/utils/test-utils.js +357 -4
- package/package-template/CHANGELOG.md +3 -0
- package/package-template/package-lock.json +4194 -0
- package/package-template/package.json +1 -1
- package/package-template/src/global.d.ts +13 -0
- package/package-template/src/package-test.ts +2 -1
- package/package-template/src/package.g.ts +0 -0
- package/package-template/src/package.js +0 -4
- package/package.json +3 -2
- package/bin/commands/publish-all.js +0 -47
package/bin/commands/test.js
CHANGED
|
@@ -11,33 +11,32 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
11
11
|
var _fs = _interopRequireDefault(require("fs"));
|
|
12
12
|
var _os = _interopRequireDefault(require("os"));
|
|
13
13
|
var _path = _interopRequireDefault(require("path"));
|
|
14
|
-
var _puppeteer = _interopRequireDefault(require("puppeteer"));
|
|
15
|
-
var _puppeteerScreenRecorder = require("puppeteer-screen-recorder");
|
|
16
14
|
var _jsYaml = _interopRequireDefault(require("js-yaml"));
|
|
17
15
|
var utils = _interopRequireWildcard(require("../utils/utils"));
|
|
18
16
|
var color = _interopRequireWildcard(require("../utils/color-utils"));
|
|
19
|
-
var
|
|
17
|
+
var _testUtils = _interopRequireWildcard(require("../utils/test-utils"));
|
|
18
|
+
var testUtils = _testUtils;
|
|
19
|
+
var _orderFunctions = require("../utils/order-functions");
|
|
20
20
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
21
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
23
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
24
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /* eslint-disable max-len */
|
|
24
25
|
var testInvocationTimeout = 3600000;
|
|
25
26
|
var availableCommandOptions = ['host', 'package', 'csv', 'gui', 'catchUnhandled', 'platform', 'core', 'report', 'skip-build', 'skip-publish', 'path', 'record', 'verbose', 'benchmark', 'category', 'test', 'stress-test', 'link', 'tag'];
|
|
26
27
|
var curDir = process.cwd();
|
|
27
28
|
var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
|
|
28
29
|
var confPath = _path["default"].join(grokDir, 'config.yaml');
|
|
29
30
|
var consoleLogOutputDir = _path["default"].join(curDir, 'test-console-output.log');
|
|
30
|
-
var
|
|
31
|
-
var page;
|
|
32
|
-
var recorder;
|
|
31
|
+
var csvReportDir = _path["default"].join(curDir, 'test-report.csv');
|
|
33
32
|
function test(_x) {
|
|
34
33
|
return _test.apply(this, arguments);
|
|
35
34
|
}
|
|
36
35
|
function _test() {
|
|
37
|
-
_test = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
38
|
-
var config, packageJsonData, packageName, packagesDir, categoryToCheck, testToCheck,
|
|
39
|
-
return _regenerator["default"].wrap(function
|
|
40
|
-
while (1) switch (
|
|
36
|
+
_test = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(args) {
|
|
37
|
+
var config, packageJsonData, packageName, packagesDir, categoryToCheck, testToCheck, res;
|
|
38
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
39
|
+
while (1) switch (_context.prev = _context.next) {
|
|
41
40
|
case 0:
|
|
42
41
|
config = _jsYaml["default"].load(_fs["default"].readFileSync(confPath, {
|
|
43
42
|
encoding: 'utf-8'
|
|
@@ -60,24 +59,26 @@ function _test() {
|
|
|
60
59
|
if (args.platform && packageName !== 'ApiTests') color.warn('--platform flag can only be used in the ApiTests package');
|
|
61
60
|
if (args.core && packageName !== 'DevTools') color.warn('--core flag can only be used in the DevTools package');
|
|
62
61
|
if (args["package"]) {
|
|
63
|
-
|
|
62
|
+
_context.next = 16;
|
|
64
63
|
break;
|
|
65
64
|
}
|
|
66
|
-
|
|
65
|
+
_context.next = 16;
|
|
67
66
|
return testUtils.loadPackages(packagesDir, packageName, args.host, args['skip-publish'], args['skip-build'], args.link);
|
|
68
67
|
case 16:
|
|
69
68
|
process.env.TARGET_PACKAGE = packageName;
|
|
70
|
-
|
|
69
|
+
_context.next = 19;
|
|
71
70
|
return runTesting(args, categoryToCheck, testToCheck);
|
|
72
71
|
case 19:
|
|
73
|
-
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
res = _context.sent;
|
|
73
|
+
if (args.csv) (0, _testUtils.saveCsvResults)([res.csv], csvReportDir);
|
|
74
|
+
(0, _testUtils.printWorkersResult)(res, args.verbose);
|
|
75
|
+
if (!res) testUtils.exitWithCode(1);else testUtils.exitWithCode(0);
|
|
76
|
+
return _context.abrupt("return", true);
|
|
77
|
+
case 24:
|
|
77
78
|
case "end":
|
|
78
|
-
return
|
|
79
|
+
return _context.stop();
|
|
79
80
|
}
|
|
80
|
-
},
|
|
81
|
+
}, _callee);
|
|
81
82
|
}));
|
|
82
83
|
return _test.apply(this, arguments);
|
|
83
84
|
}
|
|
@@ -92,232 +93,92 @@ function runTesting(_x2, _x3, _x4) {
|
|
|
92
93
|
return _runTesting.apply(this, arguments);
|
|
93
94
|
}
|
|
94
95
|
function _runTesting() {
|
|
95
|
-
_runTesting = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
96
|
-
var
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
_runTesting = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(args, categoryToCheck, testToCheck) {
|
|
97
|
+
var _process$env$TARGET_P;
|
|
98
|
+
var testsObj, parsed, organized, filtered, _iterator, _step, element, testsResults, r, _args$benchmark, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose, testsLeft, _iterator2, _step2, testData;
|
|
99
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
100
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
99
101
|
case 0:
|
|
100
|
-
color.info('
|
|
101
|
-
|
|
102
|
-
return
|
|
103
|
-
path: args.path,
|
|
104
|
-
verbose: args.verbose,
|
|
105
|
-
platform: args.platform,
|
|
106
|
-
catchUnhandled: args.catchUnhandled,
|
|
107
|
-
report: args.report,
|
|
108
|
-
record: args.record,
|
|
109
|
-
benchmark: args.benchmark,
|
|
110
|
-
core: args.core,
|
|
111
|
-
category: categoryToCheck,
|
|
112
|
-
test: testToCheck,
|
|
113
|
-
stressTest: args['stress-test'],
|
|
114
|
-
gui: args.gui
|
|
115
|
-
});
|
|
102
|
+
color.info('Loading tests...');
|
|
103
|
+
_context2.next = 3;
|
|
104
|
+
return (0, _testUtils.loadTestsList)([(_process$env$TARGET_P = process.env.TARGET_PACKAGE) !== null && _process$env$TARGET_P !== void 0 ? _process$env$TARGET_P : ''], args.core);
|
|
116
105
|
case 3:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
106
|
+
testsObj = _context2.sent;
|
|
107
|
+
parsed = (0, _orderFunctions.setAlphabeticalOrder)(testsObj, 1, 1);
|
|
108
|
+
organized = parsed[0].map(function (testObj) {
|
|
109
|
+
return {
|
|
110
|
+
"package": testObj.packageName,
|
|
111
|
+
params: {
|
|
112
|
+
category: testObj.category,
|
|
113
|
+
test: testObj.name,
|
|
114
|
+
options: {
|
|
115
|
+
catchUnhandled: args.catchUnhandled,
|
|
116
|
+
report: args.report
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
filtered = [];
|
|
122
|
+
if (args.category) {
|
|
123
|
+
_iterator = _createForOfIteratorHelper(organized);
|
|
124
|
+
try {
|
|
125
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
126
|
+
element = _step.value;
|
|
127
|
+
if (element.params.category === args.category) {
|
|
128
|
+
if (element.params.test === args.test || !args.test) filtered.push(element);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
} catch (err) {
|
|
132
|
+
_iterator.e(err);
|
|
133
|
+
} finally {
|
|
134
|
+
_iterator.f();
|
|
135
|
+
}
|
|
136
|
+
organized = filtered;
|
|
123
137
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
case
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
out = _context.sent;
|
|
152
|
-
browser = out.browser;
|
|
153
|
-
page = out.page;
|
|
154
|
-
recorder = new _puppeteerScreenRecorder.PuppeteerScreenRecorder(page, testUtils.recorderConfig);
|
|
155
|
-
_context.next = 11;
|
|
156
|
-
return page.exposeFunction("addLogsToFile", addLogsToFile);
|
|
157
|
-
case 11:
|
|
158
|
-
if (!options.record) {
|
|
159
|
-
_context.next = 18;
|
|
160
|
-
break;
|
|
138
|
+
color.info('Starting tests...');
|
|
139
|
+
testsResults = [];
|
|
140
|
+
case 10:
|
|
141
|
+
_context2.next = 12;
|
|
142
|
+
return (0, _testUtils.runWorker)(organized, {
|
|
143
|
+
benchmark: (_args$benchmark = args.benchmark) !== null && _args$benchmark !== void 0 ? _args$benchmark : false,
|
|
144
|
+
catchUnhandled: (_args$catchUnhandled = args.catchUnhandled) !== null && _args$catchUnhandled !== void 0 ? _args$catchUnhandled : false,
|
|
145
|
+
gui: (_args$gui = args.gui) !== null && _args$gui !== void 0 ? _args$gui : false,
|
|
146
|
+
record: (_args$record = args.record) !== null && _args$record !== void 0 ? _args$record : false,
|
|
147
|
+
report: (_args$report = args.report) !== null && _args$report !== void 0 ? _args$report : false,
|
|
148
|
+
verbose: (_args$verbose = args.verbose) !== null && _args$verbose !== void 0 ? _args$verbose : false,
|
|
149
|
+
stopOnTimeout: true
|
|
150
|
+
}, 1, testInvocationTimeout);
|
|
151
|
+
case 12:
|
|
152
|
+
r = _context2.sent;
|
|
153
|
+
testsResults.push(r);
|
|
154
|
+
testsLeft = [];
|
|
155
|
+
_iterator2 = _createForOfIteratorHelper(organized);
|
|
156
|
+
try {
|
|
157
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
158
|
+
testData = _step2.value;
|
|
159
|
+
if (!r.csv.includes("".concat(testData.params.category, ",").concat(testData.params.test))) testsLeft.push(testData);
|
|
160
|
+
}
|
|
161
|
+
} catch (err) {
|
|
162
|
+
_iterator2.e(err);
|
|
163
|
+
} finally {
|
|
164
|
+
_iterator2.f();
|
|
161
165
|
}
|
|
162
|
-
|
|
163
|
-
_context.next = 15;
|
|
164
|
-
return recorder.start('./test-record.mp4');
|
|
165
|
-
case 15:
|
|
166
|
-
page.on('console', function (msg) {
|
|
167
|
-
addLogsToFile("CONSOLE LOG ENTRY: ".concat(msg.text(), "\n"));
|
|
168
|
-
});
|
|
169
|
-
page.on('pageerror', function (error) {
|
|
170
|
-
addLogsToFile("CONSOLE LOG ERROR: ".concat(error.message, "\n"));
|
|
171
|
-
});
|
|
172
|
-
page.on('response', function (response) {
|
|
173
|
-
addLogsToFile("CONSOLE LOG REQUEST: ".concat(response.status(), ", ").concat(response.url(), "\n"));
|
|
174
|
-
});
|
|
166
|
+
organized = testsLeft;
|
|
175
167
|
case 18:
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
case 20:
|
|
179
|
-
return _context.abrupt("return", _context.sent);
|
|
180
|
-
case 21:
|
|
181
|
-
case "end":
|
|
182
|
-
return _context.stop();
|
|
183
|
-
}
|
|
184
|
-
}, _callee);
|
|
185
|
-
})), timeout);
|
|
186
|
-
}
|
|
187
|
-
function runWorker() {
|
|
188
|
-
return _runWorker.apply(this, arguments);
|
|
189
|
-
}
|
|
190
|
-
function _runWorker() {
|
|
191
|
-
_runWorker = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
192
|
-
var _process$env$TARGET_P;
|
|
193
|
-
var options,
|
|
194
|
-
targetPackage,
|
|
195
|
-
r,
|
|
196
|
-
_args4 = arguments;
|
|
197
|
-
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
198
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
199
|
-
case 0:
|
|
200
|
-
options = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {};
|
|
201
|
-
targetPackage = (_process$env$TARGET_P = process.env.TARGET_PACKAGE) !== null && _process$env$TARGET_P !== void 0 ? _process$env$TARGET_P : '#{PACKAGE_NAMESPACE}';
|
|
202
|
-
console.log("Testing ".concat(targetPackage, " package...\n"));
|
|
203
|
-
_context4.next = 5;
|
|
204
|
-
return page.evaluate(function (targetPackage, options, testContext) {
|
|
205
|
-
if (options.benchmark) window.DG.Test.isInBenchmark = true;
|
|
206
|
-
return new Promise(function (resolve, reject) {
|
|
207
|
-
var params = {
|
|
208
|
-
testContext: testContext,
|
|
209
|
-
category: options.category,
|
|
210
|
-
test: options.test
|
|
211
|
-
};
|
|
212
|
-
if (options.stressTest) params.stressTest = options.stressTest;
|
|
213
|
-
if (options.path) {
|
|
214
|
-
var split = options.path.split(' -- ');
|
|
215
|
-
params.category = split[0];
|
|
216
|
-
params.test = split[1];
|
|
217
|
-
}
|
|
218
|
-
if (targetPackage === 'DevTools') params.skipCore = options.core ? false : true;
|
|
219
|
-
params.verbose = options.verbose === true;
|
|
220
|
-
window.grok.functions.call("".concat(targetPackage, ":").concat(options.platform ? 'testPlatform' : 'test'), params).then(function (df) {
|
|
221
|
-
var failed = false;
|
|
222
|
-
var skipReport = '';
|
|
223
|
-
var passReport = '';
|
|
224
|
-
var failReport = '';
|
|
225
|
-
var countReport = {
|
|
226
|
-
skip: 0,
|
|
227
|
-
pass: 0
|
|
228
|
-
};
|
|
229
|
-
if (df == null) {
|
|
230
|
-
failed = true;
|
|
231
|
-
failReport = "Fail reason: No package tests found".concat(options.path ? ' for path "' + options.path + '"' : '');
|
|
232
|
-
resolve({
|
|
233
|
-
failReport: failReport,
|
|
234
|
-
skipReport: skipReport,
|
|
235
|
-
passReport: passReport,
|
|
236
|
-
failed: failed,
|
|
237
|
-
countReport: countReport
|
|
238
|
-
});
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
var csv = df.toCsv();
|
|
242
|
-
var cStatus = df.columns.byName('success');
|
|
243
|
-
var cSkipped = df.columns.byName('skipped');
|
|
244
|
-
var cMessage = df.columns.byName('result');
|
|
245
|
-
var cCat = df.columns.byName('category');
|
|
246
|
-
var cName = df.columns.byName('name');
|
|
247
|
-
var cTime = df.columns.byName('ms');
|
|
248
|
-
for (var i = 0; i < df.rowCount; i++) {
|
|
249
|
-
if (cStatus.get(i)) {
|
|
250
|
-
if (cSkipped.get(i)) {
|
|
251
|
-
skipReport += "Test result : Skipped : ".concat(cTime.get(i), " : ").concat(targetPackage, ".").concat(cCat.get(i), ".").concat(cName.get(i), " : ").concat(cMessage.get(i), "\n");
|
|
252
|
-
countReport.skip += 1;
|
|
253
|
-
} else {
|
|
254
|
-
passReport += "Test result : Success : ".concat(cTime.get(i), " : ").concat(targetPackage, ".").concat(cCat.get(i), ".").concat(cName.get(i), " : ").concat(cMessage.get(i), "\n");
|
|
255
|
-
countReport.pass += 1;
|
|
256
|
-
}
|
|
257
|
-
} else {
|
|
258
|
-
failed = true;
|
|
259
|
-
failReport += "Test result : Failed : ".concat(cTime.get(i), " : ").concat(targetPackage, ".").concat(cCat.get(i), ".").concat(cName.get(i), " : ").concat(cMessage.get(i), "\n");
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
if (!options.verbose) df.rows.removeWhere(function (r) {
|
|
263
|
-
return r.get('success');
|
|
264
|
-
});
|
|
265
|
-
resolve({
|
|
266
|
-
failReport: failReport,
|
|
267
|
-
skipReport: skipReport,
|
|
268
|
-
passReport: passReport,
|
|
269
|
-
failed: failed,
|
|
270
|
-
csv: csv,
|
|
271
|
-
countReport: countReport
|
|
272
|
-
});
|
|
273
|
-
})["catch"](function (e) {
|
|
274
|
-
var stack = window.DG.Logger.translateStackTrace(e.stack).then(function () {
|
|
275
|
-
resolve({
|
|
276
|
-
failReport: "".concat(e.message, "\n").concat(stack),
|
|
277
|
-
skipReport: '',
|
|
278
|
-
passReport: '',
|
|
279
|
-
failed: true,
|
|
280
|
-
csv: '',
|
|
281
|
-
countReport: {
|
|
282
|
-
skip: 0,
|
|
283
|
-
pass: 0
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
|
-
});
|
|
287
|
-
});
|
|
288
|
-
});
|
|
289
|
-
}, targetPackage, options, new testUtils.TestContext(options.catchUnhandled, options.report));
|
|
290
|
-
case 5:
|
|
291
|
-
r = _context4.sent;
|
|
292
|
-
if (!options.record) {
|
|
293
|
-
_context4.next = 9;
|
|
168
|
+
if (r.verboseFailed.includes('EXECUTION TIMEOUT')) {
|
|
169
|
+
_context2.next = 10;
|
|
294
170
|
break;
|
|
295
171
|
}
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
172
|
+
case 19:
|
|
173
|
+
_context2.next = 21;
|
|
174
|
+
return (0, _testUtils.mergeWorkersResults)(testsResults);
|
|
175
|
+
case 21:
|
|
176
|
+
return _context2.abrupt("return", _context2.sent);
|
|
177
|
+
case 22:
|
|
301
178
|
case "end":
|
|
302
|
-
return
|
|
179
|
+
return _context2.stop();
|
|
303
180
|
}
|
|
304
|
-
},
|
|
181
|
+
}, _callee2);
|
|
305
182
|
}));
|
|
306
|
-
return
|
|
307
|
-
}
|
|
308
|
-
function printResults(results) {
|
|
309
|
-
var csv = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
310
|
-
var verbose = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
311
|
-
if (results.csv && csv) {
|
|
312
|
-
_fs["default"].writeFileSync(_path["default"].join(curDir, 'test-report.csv'), results.csv, 'utf8');
|
|
313
|
-
color.info('Saved `test-report.csv`\n');
|
|
314
|
-
}
|
|
315
|
-
if (results.passReport && verbose) console.log(results.passReport);else console.log('Passed tests: ' + results.countReport.pass);
|
|
316
|
-
if (results.skipReport && verbose) console.log(results.skipReport);else console.log('Skipped tests: ' + results.countReport.skip);
|
|
317
|
-
if (results.failed) {
|
|
318
|
-
console.log(results.failReport);
|
|
319
|
-
color.fail('Tests failed.');
|
|
320
|
-
} else {
|
|
321
|
-
color.success('Tests passed.');
|
|
322
|
-
}
|
|
183
|
+
return _runTesting.apply(this, arguments);
|
|
323
184
|
}
|
package/bin/grok.js
CHANGED
|
@@ -15,7 +15,6 @@ const commands = {
|
|
|
15
15
|
publish: require('./commands/publish').publish,
|
|
16
16
|
test: require('./commands/test').test,
|
|
17
17
|
testall: require('./commands/test-all').testAll,
|
|
18
|
-
publishall: require('./commands/publish-all').publishAll,
|
|
19
18
|
};
|
|
20
19
|
|
|
21
20
|
const command = argv['_'][0];
|