datagrok-tools 4.13.51 → 4.13.53
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 +14 -0
- package/bin/commands/help.js +1 -1
- package/bin/commands/test-all.js +81 -33
- package/bin/commands/test.js +8 -8
- package/bin/utils/order-functions.js +41 -32
- package/bin/utils/test-utils.js +54 -54
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Datagrok-tools changelog
|
|
2
2
|
|
|
3
|
+
## 4.13.53 (2025-01-06)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* Updated csv output for test all(added workes id)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 4.13.52 (2024-12-30)
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* Refactored workers to browsers
|
|
15
|
+
|
|
16
|
+
|
|
3
17
|
## 4.13.51 (2024-12-30)
|
|
4
18
|
|
|
5
19
|
### Features
|
package/bin/commands/help.js
CHANGED
|
@@ -13,7 +13,7 @@ var HELP_CREATE = "\nUsage: grok create [name]\n\nCreate a package:\n\ngrok crea
|
|
|
13
13
|
var HELP_PUBLISH = "\nUsage: grok publish [host]\n\nUpload a package\n\nOptions:\n[--build|--rebuild] [--debug|--release] [-k | --key] [--suffix] [--all] [--refresh] [--link]\n\n--all Publish all available packages \n--refresh Publish all available already loaded packages \n--link \t Link the package to local utils\n\nRunning `grok publish` is the same as running `grok publish defaultHost --build --debug`\n";
|
|
14
14
|
var HELP_CHECK = "\nUsage: grok check\n\nOptions:\n[-r | --recursive]\n\n--recursive Check all packages in the current directory\n\nCheck package content (function signatures, import statements of external modules, etc.)\n";
|
|
15
15
|
var HELP_TEST = "\nUsage: grok test\n\nOptions:\n[--package] [--category] [--test] [--host] [--csv] [--gui] [--skip-build] [--skip-publish] [--link] [--catchUnhandled] [--report] [--record] [--verbose] [--platform] [--benchmark] [--stress-test]\n\n--package Specify a package name to run tests for\n--category Specify a category name to run tests for\n--test Specify a test name to run \n--host Host alias as in the config file\n--csv Save the test report in a CSV file\n--gui Launch graphical interface (non-headless mode)\n--catchUnhandled Catch unhandled exceptions during test execution (default=true)\n--report Report failed tests to audit, notifies package author (default=false)\n--skip-build Skip the package build step\n--skip-publish Skip the package publication step\n--link \t Link the package to local utils\n--record Records the test execution process in mp4 format\n--verbose Prints detailed information about passed and skipped tests in the console\n--platform Runs only platform tests (applicable for ApiTests package only)\n--core Runs package & auto tests & core tests (core tests run only from DevTools package)\n--benchmark \t Runs tests in benchmark mode\n--stress-test Runs shuffled stress-test only\n \nRun package tests\n\nSee instructions:\nhttps://datagrok.ai/help/develop/how-to/test-packages#local-testing\n";
|
|
16
|
-
var HELP_TESTALL = "\nUsage: grok testall\n\nOptions:\n[--packages] [--host] [--csv] [--gui] [--skip-build] [--skip-publish] [--link-package] [--catchUnhandled] [--report] [--record] [--verbose] [--benchmark] [--stress-test] [--order] [--tags] [--testRepeat] [--
|
|
16
|
+
var HELP_TESTALL = "\nUsage: grok testall\n\nOptions:\n[--packages] [--host] [--csv] [--gui] [--skip-build] [--skip-publish] [--link-package] [--catchUnhandled] [--report] [--record] [--verbose] [--benchmark] [--stress-test] [--order] [--tags] [--testRepeat] [--browsers-count]\n\n--packages Specify a packages names to run tests for\n--host Host alias as in the config file\n--csv Save the test report in a CSV file\n--gui Launch graphical interface (non-headless mode)\n--catchUnhandled Catch unhandled exceptions during test execution (default=true)\n--report Report failed tests to audit, notifies packages author (default=false)\n--skip-build Skip the packages build step\n--skip-publish Skip the packages publication step\n--link-package \t Link the packages to local utils\n--record Records the test execution process in mp4 format\n--verbose Prints detailed information about passed and skipped tests in the console\n--core Runs packages & core tests (applicable for DevTools packages only)\n--benchmark \t Runs tests in benchmark mode\n--stress-test Runs shuffled stress-test only\n--order Specify order for tests invocation\n--tags Filter tests by tag name for run\n--testRepeat Set amount of tests repeats\n--browsers-count Set amount of browsers for tests run\n\nRun tests of all or specified packages \n\nSee instructions:\nhttps://datagrok.ai/help/develop/how-to/test-packages#local-testing\n";
|
|
17
17
|
var HELP_LINK = "\nUsage: grok link\n\nLink `datagrok-api` and libraries for local development\n";
|
|
18
18
|
|
|
19
19
|
// const HELP_MIGRATE = `
|
package/bin/commands/test-all.js
CHANGED
|
@@ -16,6 +16,7 @@ var utils = _interopRequireWildcard(require("../utils/utils"));
|
|
|
16
16
|
var _testUtils = _interopRequireWildcard(require("../utils/test-utils"));
|
|
17
17
|
var testUtils = _testUtils;
|
|
18
18
|
var _orderFunctions = require("../utils/order-functions");
|
|
19
|
+
var Papa = _interopRequireWildcard(require("papaparse"));
|
|
19
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); }
|
|
20
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; }
|
|
21
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; } } }; }
|
|
@@ -26,7 +27,7 @@ var order = /*#__PURE__*/function (order) {
|
|
|
26
27
|
order[order["alphabetical"] = 1] = "alphabetical";
|
|
27
28
|
order[order["packageRandom"] = 2] = "packageRandom";
|
|
28
29
|
order[order["packageAlphabetical"] = 3] = "packageAlphabetical";
|
|
29
|
-
order[order["
|
|
30
|
+
order[order["testToBrowser"] = 4] = "testToBrowser";
|
|
30
31
|
return order;
|
|
31
32
|
}(order || {});
|
|
32
33
|
function getEnumOrder(orderStr) {
|
|
@@ -47,8 +48,8 @@ function getEnumOrder(orderStr) {
|
|
|
47
48
|
case "packageatoz":
|
|
48
49
|
return order.packageAlphabetical;
|
|
49
50
|
break;
|
|
50
|
-
case "
|
|
51
|
-
return order.
|
|
51
|
+
case "testtobrowser":
|
|
52
|
+
return order.testToBrowser;
|
|
52
53
|
break;
|
|
53
54
|
}
|
|
54
55
|
return order.random;
|
|
@@ -58,15 +59,15 @@ var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
|
|
|
58
59
|
var confPath = _path["default"].join(grokDir, 'config.yaml');
|
|
59
60
|
var csvReportDir = _path["default"].join(curDir, 'test-report.csv');
|
|
60
61
|
var testInvocationTimeout = 7200000;
|
|
61
|
-
var orderingFunctions = new Map([[order.random, _orderFunctions.setRandomOrder], [order.alphabetical, _orderFunctions.setAlphabeticalOrder], [order.packageRandom, _orderFunctions.setPackageRandomOrder], [order.packageAlphabetical, _orderFunctions.setPackageAlphabeticalOrder], [order.
|
|
62
|
-
var
|
|
62
|
+
var orderingFunctions = new Map([[order.random, _orderFunctions.setRandomOrder], [order.alphabetical, _orderFunctions.setAlphabeticalOrder], [order.packageRandom, _orderFunctions.setPackageRandomOrder], [order.packageAlphabetical, _orderFunctions.setPackageAlphabeticalOrder], [order.testToBrowser, _orderFunctions.setTestToBrowserOrder]]);
|
|
63
|
+
var browsersStarted = 0;
|
|
63
64
|
function testAll(_x) {
|
|
64
65
|
return _testAll.apply(this, arguments);
|
|
65
66
|
}
|
|
66
67
|
function _testAll() {
|
|
67
68
|
_testAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(args) {
|
|
68
69
|
var _args$tags, _args$order, _args$benchmark, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose;
|
|
69
|
-
var config, packagesToRun, testsObj, filteredTests,
|
|
70
|
+
var config, packagesToRun, testsObj, filteredTests, browsersOrder, testsResults, i, _iterator, _step, result;
|
|
70
71
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
71
72
|
while (1) switch (_context.prev = _context.next) {
|
|
72
73
|
case 0:
|
|
@@ -87,11 +88,11 @@ function _testAll() {
|
|
|
87
88
|
case 10:
|
|
88
89
|
filteredTests = _context.sent;
|
|
89
90
|
_context.next = 13;
|
|
90
|
-
return
|
|
91
|
+
return setBrowsersOrder(filteredTests, getEnumOrder((_args$order = args.order) !== null && _args$order !== void 0 ? _args$order : ''), args['browsers-count'], args.testRepeat);
|
|
91
92
|
case 13:
|
|
92
|
-
|
|
93
|
+
browsersOrder = _context.sent;
|
|
93
94
|
_context.next = 16;
|
|
94
|
-
return runTests(
|
|
95
|
+
return runTests(browsersOrder, {
|
|
95
96
|
benchmark: (_args$benchmark = args.benchmark) !== null && _args$benchmark !== void 0 ? _args$benchmark : false,
|
|
96
97
|
catchUnhandled: (_args$catchUnhandled = args.catchUnhandled) !== null && _args$catchUnhandled !== void 0 ? _args$catchUnhandled : false,
|
|
97
98
|
gui: (_args$gui = args.gui) !== null && _args$gui !== void 0 ? _args$gui : false,
|
|
@@ -106,8 +107,8 @@ function _testAll() {
|
|
|
106
107
|
try {
|
|
107
108
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
108
109
|
result = _step.value;
|
|
109
|
-
console.log("\
|
|
110
|
-
(0, _testUtils.
|
|
110
|
+
console.log("\nBrowser #".concat(i++, " "));
|
|
111
|
+
(0, _testUtils.printBrowsersResult)(result, args.verbose);
|
|
111
112
|
}
|
|
112
113
|
} catch (err) {
|
|
113
114
|
_iterator.e(err);
|
|
@@ -228,13 +229,13 @@ function _filterTests() {
|
|
|
228
229
|
}));
|
|
229
230
|
return _filterTests.apply(this, arguments);
|
|
230
231
|
}
|
|
231
|
-
function
|
|
232
|
-
return
|
|
232
|
+
function setBrowsersOrder(_x4) {
|
|
233
|
+
return _setBrowsersOrder.apply(this, arguments);
|
|
233
234
|
}
|
|
234
|
-
function
|
|
235
|
-
|
|
235
|
+
function _setBrowsersOrder() {
|
|
236
|
+
_setBrowsersOrder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(tests) {
|
|
236
237
|
var invocationOrder,
|
|
237
|
-
|
|
238
|
+
countOfBrowsers,
|
|
238
239
|
testRepeats,
|
|
239
240
|
resultOrder,
|
|
240
241
|
orderingFunction,
|
|
@@ -243,7 +244,7 @@ function _setWorkersOrder() {
|
|
|
243
244
|
while (1) switch (_context4.prev = _context4.next) {
|
|
244
245
|
case 0:
|
|
245
246
|
invocationOrder = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : 0;
|
|
246
|
-
|
|
247
|
+
countOfBrowsers = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : 1;
|
|
247
248
|
testRepeats = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : 1;
|
|
248
249
|
resultOrder = [];
|
|
249
250
|
orderingFunction = orderingFunctions.get(invocationOrder);
|
|
@@ -251,7 +252,7 @@ function _setWorkersOrder() {
|
|
|
251
252
|
_context4.next = 9;
|
|
252
253
|
break;
|
|
253
254
|
}
|
|
254
|
-
resultOrder = orderingFunction(tests,
|
|
255
|
+
resultOrder = orderingFunction(tests, countOfBrowsers, testRepeats);
|
|
255
256
|
_context4.next = 10;
|
|
256
257
|
break;
|
|
257
258
|
case 9:
|
|
@@ -264,31 +265,31 @@ function _setWorkersOrder() {
|
|
|
264
265
|
}
|
|
265
266
|
}, _callee3);
|
|
266
267
|
}));
|
|
267
|
-
return
|
|
268
|
+
return _setBrowsersOrder.apply(this, arguments);
|
|
268
269
|
}
|
|
269
270
|
function runTests(_x5, _x6) {
|
|
270
271
|
return _runTests.apply(this, arguments);
|
|
271
272
|
}
|
|
272
273
|
function _runTests() {
|
|
273
|
-
_runTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(
|
|
274
|
-
var
|
|
274
|
+
_runTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(browsersOrder, browserOptions) {
|
|
275
|
+
var browsersCommands, _iterator3, _step3, browserOrder, browsersPromises, _i, _browsersCommands, browserCommands, resultObjects, i;
|
|
275
276
|
return _regenerator["default"].wrap(function _callee4$(_context5) {
|
|
276
277
|
while (1) switch (_context5.prev = _context5.next) {
|
|
277
278
|
case 0:
|
|
278
|
-
|
|
279
|
-
_iterator3 = _createForOfIteratorHelper(
|
|
279
|
+
browsersCommands = [];
|
|
280
|
+
_iterator3 = _createForOfIteratorHelper(browsersOrder);
|
|
280
281
|
try {
|
|
281
282
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
282
|
-
|
|
283
|
-
|
|
283
|
+
browserOrder = _step3.value;
|
|
284
|
+
browsersCommands.push(browserOrder.map(function (testObj) {
|
|
284
285
|
return {
|
|
285
286
|
"package": testObj.packageName,
|
|
286
287
|
params: {
|
|
287
288
|
category: testObj.category,
|
|
288
289
|
test: testObj.name,
|
|
289
290
|
options: {
|
|
290
|
-
catchUnhandled:
|
|
291
|
-
report:
|
|
291
|
+
catchUnhandled: browserOptions.catchUnhandled,
|
|
292
|
+
report: browserOptions.report
|
|
292
293
|
}
|
|
293
294
|
}
|
|
294
295
|
};
|
|
@@ -299,21 +300,68 @@ function _runTests() {
|
|
|
299
300
|
} finally {
|
|
300
301
|
_iterator3.f();
|
|
301
302
|
}
|
|
302
|
-
|
|
303
|
-
for (_i = 0,
|
|
304
|
-
|
|
305
|
-
|
|
303
|
+
browsersPromises = [];
|
|
304
|
+
for (_i = 0, _browsersCommands = browsersCommands; _i < _browsersCommands.length; _i++) {
|
|
305
|
+
browserCommands = _browsersCommands[_i];
|
|
306
|
+
browsersPromises.push((0, _testUtils.runBrowser)(browserCommands, browserOptions, browsersStarted++, testInvocationTimeout));
|
|
306
307
|
}
|
|
307
308
|
_context5.next = 7;
|
|
308
|
-
return Promise.all(
|
|
309
|
+
return Promise.all(browsersPromises);
|
|
309
310
|
case 7:
|
|
310
311
|
resultObjects = _context5.sent;
|
|
311
|
-
|
|
312
|
+
i = 0;
|
|
312
313
|
case 9:
|
|
314
|
+
if (!(i < resultObjects.length)) {
|
|
315
|
+
_context5.next = 16;
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
_context5.next = 12;
|
|
319
|
+
return addBrowserColumn(resultObjects[i].csv, i);
|
|
320
|
+
case 12:
|
|
321
|
+
resultObjects[i].csv = _context5.sent;
|
|
322
|
+
case 13:
|
|
323
|
+
i++;
|
|
324
|
+
_context5.next = 9;
|
|
325
|
+
break;
|
|
326
|
+
case 16:
|
|
327
|
+
return _context5.abrupt("return", resultObjects);
|
|
328
|
+
case 17:
|
|
313
329
|
case "end":
|
|
314
330
|
return _context5.stop();
|
|
315
331
|
}
|
|
316
332
|
}, _callee4);
|
|
317
333
|
}));
|
|
318
334
|
return _runTests.apply(this, arguments);
|
|
335
|
+
}
|
|
336
|
+
function addBrowserColumn(_x7, _x8) {
|
|
337
|
+
return _addBrowserColumn.apply(this, arguments);
|
|
338
|
+
}
|
|
339
|
+
function _addBrowserColumn() {
|
|
340
|
+
_addBrowserColumn = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(csv, workerNumber) {
|
|
341
|
+
var result;
|
|
342
|
+
return _regenerator["default"].wrap(function _callee5$(_context6) {
|
|
343
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
344
|
+
case 0:
|
|
345
|
+
result = "";
|
|
346
|
+
Papa.parse(csv, {
|
|
347
|
+
header: true,
|
|
348
|
+
skipEmptyLines: true,
|
|
349
|
+
complete: function complete(results) {
|
|
350
|
+
var dataWithDefaultColumn = results.data.map(function (row) {
|
|
351
|
+
row["worker"] = workerNumber;
|
|
352
|
+
return row;
|
|
353
|
+
});
|
|
354
|
+
result = Papa.unparse(dataWithDefaultColumn, {
|
|
355
|
+
header: true
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
return _context6.abrupt("return", result);
|
|
360
|
+
case 3:
|
|
361
|
+
case "end":
|
|
362
|
+
return _context6.stop();
|
|
363
|
+
}
|
|
364
|
+
}, _callee5);
|
|
365
|
+
}));
|
|
366
|
+
return _addBrowserColumn.apply(this, arguments);
|
|
319
367
|
}
|
package/bin/commands/test.js
CHANGED
|
@@ -67,7 +67,7 @@ function _test() {
|
|
|
67
67
|
case 15:
|
|
68
68
|
res = _context.sent;
|
|
69
69
|
if (args.csv) (0, _testUtils.saveCsvResults)([res.csv], csvReportDir);
|
|
70
|
-
(0, _testUtils.
|
|
70
|
+
(0, _testUtils.printBrowsersResult)(res, args.verbose);
|
|
71
71
|
if (res.failed) testUtils.exitWithCode(1);else testUtils.exitWithCode(0);
|
|
72
72
|
return _context.abrupt("return", true);
|
|
73
73
|
case 20:
|
|
@@ -91,7 +91,7 @@ function runTesting(_x2) {
|
|
|
91
91
|
function _runTesting() {
|
|
92
92
|
_runTesting = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(args) {
|
|
93
93
|
var _process$env$TARGET_P, _args$category;
|
|
94
|
-
var testsObj, parsed, organized, filtered, categoryRegex, _iterator, _step, element, testsResults, r,
|
|
94
|
+
var testsObj, parsed, organized, filtered, categoryRegex, _iterator, _step, element, testsResults, r, browserId;
|
|
95
95
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
96
96
|
while (1) switch (_context3.prev = _context3.next) {
|
|
97
97
|
case 0:
|
|
@@ -153,7 +153,7 @@ function _runTesting() {
|
|
|
153
153
|
}
|
|
154
154
|
color.info('Starting tests...');
|
|
155
155
|
testsResults = [];
|
|
156
|
-
|
|
156
|
+
browserId = 1;
|
|
157
157
|
_context3.next = 17;
|
|
158
158
|
return (0, _testUtils.timeout)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
159
159
|
var _args$benchmark, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose, _args$ciCd, testsLeft, testsToReproduce, _iterator2, _step2, testData, reproduced, _iterator3, _step3, _test2, _reproducedTest2;
|
|
@@ -161,7 +161,7 @@ function _runTesting() {
|
|
|
161
161
|
while (1) switch (_context2.prev = _context2.next) {
|
|
162
162
|
case 0:
|
|
163
163
|
_context2.next = 2;
|
|
164
|
-
return (0, _testUtils.
|
|
164
|
+
return (0, _testUtils.runBrowser)(organized, {
|
|
165
165
|
benchmark: (_args$benchmark = args.benchmark) !== null && _args$benchmark !== void 0 ? _args$benchmark : false,
|
|
166
166
|
catchUnhandled: (_args$catchUnhandled = args.catchUnhandled) !== null && _args$catchUnhandled !== void 0 ? _args$catchUnhandled : false,
|
|
167
167
|
gui: (_args$gui = args.gui) !== null && _args$gui !== void 0 ? _args$gui : false,
|
|
@@ -170,7 +170,7 @@ function _runTesting() {
|
|
|
170
170
|
verbose: (_args$verbose = args.verbose) !== null && _args$verbose !== void 0 ? _args$verbose : false,
|
|
171
171
|
ciCd: (_args$ciCd = args['ci-cd']) !== null && _args$ciCd !== void 0 ? _args$ciCd : false,
|
|
172
172
|
stopOnTimeout: true
|
|
173
|
-
},
|
|
173
|
+
}, browserId, testInvocationTimeout);
|
|
174
174
|
case 2:
|
|
175
175
|
r = _context2.sent;
|
|
176
176
|
testsLeft = [];
|
|
@@ -232,7 +232,7 @@ function _runTesting() {
|
|
|
232
232
|
case 31:
|
|
233
233
|
testsResults.push(r);
|
|
234
234
|
organized = testsLeft;
|
|
235
|
-
|
|
235
|
+
browserId++;
|
|
236
236
|
case 34:
|
|
237
237
|
if (r.failed) {
|
|
238
238
|
_context2.next = 0;
|
|
@@ -246,7 +246,7 @@ function _runTesting() {
|
|
|
246
246
|
})), testInvocationTimeout);
|
|
247
247
|
case 17:
|
|
248
248
|
_context3.next = 19;
|
|
249
|
-
return (0, _testUtils.
|
|
249
|
+
return (0, _testUtils.mergeBrowsersResults)(testsResults);
|
|
250
250
|
case 19:
|
|
251
251
|
return _context3.abrupt("return", _context3.sent);
|
|
252
252
|
case 20:
|
|
@@ -277,7 +277,7 @@ function _reproducedTest() {
|
|
|
277
277
|
}
|
|
278
278
|
_test3 = _step4.value;
|
|
279
279
|
_context4.next = 8;
|
|
280
|
-
return (0, _testUtils.
|
|
280
|
+
return (0, _testUtils.runBrowser)([_test3], {
|
|
281
281
|
benchmark: (_args$benchmark2 = args.benchmark) !== null && _args$benchmark2 !== void 0 ? _args$benchmark2 : false,
|
|
282
282
|
catchUnhandled: false,
|
|
283
283
|
gui: false,
|
|
@@ -8,7 +8,7 @@ exports.setAlphabeticalOrder = setAlphabeticalOrder;
|
|
|
8
8
|
exports.setPackageAlphabeticalOrder = setPackageAlphabeticalOrder;
|
|
9
9
|
exports.setPackageRandomOrder = setPackageRandomOrder;
|
|
10
10
|
exports.setRandomOrder = setRandomOrder;
|
|
11
|
-
exports.
|
|
11
|
+
exports.setTestToBrowserOrder = setTestToBrowserOrder;
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
14
14
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -16,15 +16,15 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
16
16
|
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; } } }; }
|
|
17
17
|
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); }
|
|
18
18
|
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; }
|
|
19
|
-
function setRandomOrder(tests,
|
|
20
|
-
if (
|
|
19
|
+
function setRandomOrder(tests, browsersAmount, testRepeats) {
|
|
20
|
+
if (browsersAmount > tests.length) browsersAmount = tests.length;
|
|
21
21
|
var repeatedTests = repeatTests(tests, testRepeats);
|
|
22
22
|
var orderedTests = shuffle(repeatedTests);
|
|
23
|
-
return splitArray(orderedTests,
|
|
23
|
+
return splitArray(orderedTests, browsersAmount);
|
|
24
24
|
}
|
|
25
|
-
function setPackageRandomOrder(tests,
|
|
25
|
+
function setPackageRandomOrder(tests, browsersAmount, testRepeats) {
|
|
26
26
|
var packages = splitTestsByPackages(tests);
|
|
27
|
-
if (
|
|
27
|
+
if (browsersAmount > packages.size) browsersAmount = packages.size;
|
|
28
28
|
var _iterator = _createForOfIteratorHelper(packages.keys()),
|
|
29
29
|
_step;
|
|
30
30
|
try {
|
|
@@ -38,7 +38,7 @@ function setPackageRandomOrder(tests, workersAmount, testRepeats) {
|
|
|
38
38
|
} finally {
|
|
39
39
|
_iterator.f();
|
|
40
40
|
}
|
|
41
|
-
var splittedPackagesArray = splitArray((0, _toConsumableArray2["default"])(packages.values()),
|
|
41
|
+
var splittedPackagesArray = splitArray((0, _toConsumableArray2["default"])(packages.values()), browsersAmount);
|
|
42
42
|
var splittedTestsArray = [];
|
|
43
43
|
for (var _i = 0, _splittedPackagesArra = splittedPackagesArray; _i < _splittedPackagesArra.length; _i++) {
|
|
44
44
|
var _splitArray = _splittedPackagesArra[_i];
|
|
@@ -59,17 +59,17 @@ function setPackageRandomOrder(tests, workersAmount, testRepeats) {
|
|
|
59
59
|
}
|
|
60
60
|
return splittedTestsArray;
|
|
61
61
|
}
|
|
62
|
-
function setAlphabeticalOrder(tests,
|
|
63
|
-
if (
|
|
62
|
+
function setAlphabeticalOrder(tests, browsersAmount, testRepeats) {
|
|
63
|
+
if (browsersAmount > tests.length) browsersAmount = tests.length;
|
|
64
64
|
var repeatedTests = repeatTests(tests, testRepeats);
|
|
65
65
|
var orderedTests = repeatedTests.sort(function (test1, test2) {
|
|
66
66
|
return "".concat(test1.category, ": ").concat(test1.name, "s").localeCompare("".concat(test2.category, ": ").concat(test2.name, "s"));
|
|
67
67
|
});
|
|
68
|
-
return splitArray(orderedTests,
|
|
68
|
+
return splitArray(orderedTests, browsersAmount);
|
|
69
69
|
}
|
|
70
|
-
function setPackageAlphabeticalOrder(tests,
|
|
70
|
+
function setPackageAlphabeticalOrder(tests, browsersAmount, testRepeats) {
|
|
71
71
|
var packages = splitTestsByPackages(tests);
|
|
72
|
-
if (
|
|
72
|
+
if (browsersAmount > packages.size) browsersAmount = packages.size;
|
|
73
73
|
var _iterator3 = _createForOfIteratorHelper(packages.keys()),
|
|
74
74
|
_step3;
|
|
75
75
|
try {
|
|
@@ -83,7 +83,7 @@ function setPackageAlphabeticalOrder(tests, workersAmount, testRepeats) {
|
|
|
83
83
|
} finally {
|
|
84
84
|
_iterator3.f();
|
|
85
85
|
}
|
|
86
|
-
var splittedPackagesArray = splitArray((0, _toConsumableArray2["default"])(packages.values()),
|
|
86
|
+
var splittedPackagesArray = splitArray((0, _toConsumableArray2["default"])(packages.values()), browsersAmount);
|
|
87
87
|
var splittedTestsArray = [];
|
|
88
88
|
for (var _i2 = 0, _splittedPackagesArra2 = splittedPackagesArray; _i2 < _splittedPackagesArra2.length; _i2++) {
|
|
89
89
|
var _splitArray2 = _splittedPackagesArra2[_i2];
|
|
@@ -104,16 +104,25 @@ function setPackageAlphabeticalOrder(tests, workersAmount, testRepeats) {
|
|
|
104
104
|
}
|
|
105
105
|
return splittedTestsArray;
|
|
106
106
|
}
|
|
107
|
-
function
|
|
107
|
+
function setTestToBrowserOrder(tests, browsersAmount, testRepeats) {
|
|
108
108
|
var splittedTestsArray = [];
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
if (browsersAmount > tests.length) browsersAmount = tests.length;
|
|
110
|
+
var orderedTests = shuffle(tests);
|
|
111
|
+
for (var i = 0; i < browsersAmount; i++) {
|
|
112
112
|
splittedTestsArray.push([]);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
var _iterator5 = _createForOfIteratorHelper(orderedTests),
|
|
114
|
+
_step5;
|
|
115
|
+
try {
|
|
116
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
117
|
+
var test = _step5.value;
|
|
118
|
+
splittedTestsArray[splittedTestsArray.length - 1].push(_objectSpread({}, test));
|
|
119
|
+
}
|
|
120
|
+
} catch (err) {
|
|
121
|
+
_iterator5.e(err);
|
|
122
|
+
} finally {
|
|
123
|
+
_iterator5.f();
|
|
116
124
|
}
|
|
125
|
+
splittedTestsArray[splittedTestsArray.length - 1] = shuffle(repeatTests(splittedTestsArray[splittedTestsArray.length - 1], testRepeats));
|
|
117
126
|
}
|
|
118
127
|
return splittedTestsArray;
|
|
119
128
|
}
|
|
@@ -122,35 +131,35 @@ function alphabeticalSortFunction(test1, test2) {
|
|
|
122
131
|
}
|
|
123
132
|
function splitTestsByPackages(tests) {
|
|
124
133
|
var resultMap = new Map();
|
|
125
|
-
var
|
|
126
|
-
|
|
134
|
+
var _iterator6 = _createForOfIteratorHelper(tests),
|
|
135
|
+
_step6;
|
|
127
136
|
try {
|
|
128
|
-
for (
|
|
129
|
-
var test =
|
|
137
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
138
|
+
var test = _step6.value;
|
|
130
139
|
if (resultMap.has(test.packageName)) resultMap.get(test.packageName).push(test);else resultMap.set(test.packageName, [test]);
|
|
131
140
|
}
|
|
132
141
|
} catch (err) {
|
|
133
|
-
|
|
142
|
+
_iterator6.e(err);
|
|
134
143
|
} finally {
|
|
135
|
-
|
|
144
|
+
_iterator6.f();
|
|
136
145
|
}
|
|
137
146
|
return resultMap;
|
|
138
147
|
}
|
|
139
148
|
function repeatTests(tests, testRepeats) {
|
|
140
149
|
var repeatedTests = [];
|
|
141
|
-
var
|
|
142
|
-
|
|
150
|
+
var _iterator7 = _createForOfIteratorHelper(tests),
|
|
151
|
+
_step7;
|
|
143
152
|
try {
|
|
144
|
-
for (
|
|
145
|
-
var test =
|
|
153
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
154
|
+
var test = _step7.value;
|
|
146
155
|
for (var i = 0; i < testRepeats; i++) {
|
|
147
156
|
repeatedTests.push(_objectSpread({}, test));
|
|
148
157
|
}
|
|
149
158
|
}
|
|
150
159
|
} catch (err) {
|
|
151
|
-
|
|
160
|
+
_iterator7.e(err);
|
|
152
161
|
} finally {
|
|
153
|
-
|
|
162
|
+
_iterator7.f();
|
|
154
163
|
}
|
|
155
164
|
return repeatedTests;
|
|
156
165
|
}
|
package/bin/utils/test-utils.js
CHANGED
|
@@ -15,11 +15,11 @@ exports.getToken = getToken;
|
|
|
15
15
|
exports.getWebUrl = getWebUrl;
|
|
16
16
|
exports.loadPackages = loadPackages;
|
|
17
17
|
exports.loadTestsList = loadTestsList;
|
|
18
|
-
exports.
|
|
19
|
-
exports.
|
|
18
|
+
exports.mergeBrowsersResults = mergeBrowsersResults;
|
|
19
|
+
exports.printBrowsersResult = printBrowsersResult;
|
|
20
20
|
exports.recorderConfig = void 0;
|
|
21
|
+
exports.runBrowser = runBrowser;
|
|
21
22
|
exports.runWithTimeout = runWithTimeout;
|
|
22
|
-
exports.runWorker = runWorker;
|
|
23
23
|
exports.saveCsvResults = saveCsvResults;
|
|
24
24
|
exports.timeout = timeout;
|
|
25
25
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
@@ -575,28 +575,28 @@ function _loadTestsList() {
|
|
|
575
575
|
function addLogsToFile(filePath, stringToSave) {
|
|
576
576
|
_fs["default"].appendFileSync(filePath, "".concat(stringToSave));
|
|
577
577
|
}
|
|
578
|
-
function
|
|
579
|
-
var
|
|
578
|
+
function printBrowsersResult(browserResult) {
|
|
579
|
+
var _browserResult$failed, _browserResult$verbos3;
|
|
580
580
|
var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
581
581
|
if (verbose) {
|
|
582
|
-
var
|
|
583
|
-
if (((
|
|
582
|
+
var _browserResult$passed, _browserResult$verbos, _browserResult$skippe, _browserResult$verbos2;
|
|
583
|
+
if (((_browserResult$passed = browserResult.passedAmount) !== null && _browserResult$passed !== void 0 ? _browserResult$passed : 0) > 0 && ((_browserResult$verbos = browserResult.verbosePassed) !== null && _browserResult$verbos !== void 0 ? _browserResult$verbos : []).length > 0) {
|
|
584
584
|
console.log("Passed: ");
|
|
585
|
-
console.log(
|
|
585
|
+
console.log(browserResult.verbosePassed);
|
|
586
586
|
}
|
|
587
|
-
if (((
|
|
587
|
+
if (((_browserResult$skippe = browserResult.skippedAmount) !== null && _browserResult$skippe !== void 0 ? _browserResult$skippe : 0) > 0 && ((_browserResult$verbos2 = browserResult.verboseSkipped) !== null && _browserResult$verbos2 !== void 0 ? _browserResult$verbos2 : []).length > 0) {
|
|
588
588
|
console.log("Skipped: ");
|
|
589
|
-
console.log(
|
|
589
|
+
console.log(browserResult.verboseSkipped);
|
|
590
590
|
}
|
|
591
591
|
}
|
|
592
|
-
if (((
|
|
592
|
+
if (((_browserResult$failed = browserResult.failedAmount) !== null && _browserResult$failed !== void 0 ? _browserResult$failed : 0) > 0 && ((_browserResult$verbos3 = browserResult.verboseFailed) !== null && _browserResult$verbos3 !== void 0 ? _browserResult$verbos3 : []).length > 0) {
|
|
593
593
|
console.log("Failed: ");
|
|
594
|
-
console.log(
|
|
594
|
+
console.log(browserResult.verboseFailed);
|
|
595
595
|
}
|
|
596
|
-
console.log("Passed amount: " + (
|
|
597
|
-
console.log("Skipped amount: " + (
|
|
598
|
-
console.log("Failed amount: " + (
|
|
599
|
-
if (
|
|
596
|
+
console.log("Passed amount: " + (browserResult === null || browserResult === void 0 ? void 0 : browserResult.passedAmount));
|
|
597
|
+
console.log("Skipped amount: " + (browserResult === null || browserResult === void 0 ? void 0 : browserResult.skippedAmount));
|
|
598
|
+
console.log("Failed amount: " + (browserResult === null || browserResult === void 0 ? void 0 : browserResult.failedAmount));
|
|
599
|
+
if (browserResult.failed) {
|
|
600
600
|
color.fail('Tests failed.');
|
|
601
601
|
} else {
|
|
602
602
|
color.success('Tests passed.');
|
|
@@ -610,11 +610,11 @@ function saveCsvResults(stringToSave, csvReportDir) {
|
|
|
610
610
|
_fs["default"].writeFileSync(csvReportDir, modifiedStrings.join('\n'), 'utf8');
|
|
611
611
|
color.info('Saved `test-report.csv`\n');
|
|
612
612
|
}
|
|
613
|
-
function
|
|
614
|
-
return
|
|
613
|
+
function runBrowser(_x18, _x19, _x20) {
|
|
614
|
+
return _runBrowser.apply(this, arguments);
|
|
615
615
|
}
|
|
616
|
-
function
|
|
617
|
-
|
|
616
|
+
function _runBrowser() {
|
|
617
|
+
_runBrowser = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(testExecutionData, browserOptions, browsersId) {
|
|
618
618
|
var testInvocationTimeout,
|
|
619
619
|
_args10 = arguments;
|
|
620
620
|
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
@@ -623,12 +623,12 @@ function _runWorker() {
|
|
|
623
623
|
testInvocationTimeout = _args10.length > 3 && _args10[3] !== undefined ? _args10[3] : 3600000;
|
|
624
624
|
_context10.next = 3;
|
|
625
625
|
return timeout( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
626
|
-
var params, out, browser, page, recorder,
|
|
626
|
+
var params, out, browser, page, recorder, currentBrowserNum, logsDir, recordDir, testingResults;
|
|
627
627
|
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
628
628
|
while (1) switch (_context9.prev = _context9.next) {
|
|
629
629
|
case 0:
|
|
630
630
|
params = Object.assign({}, defaultLaunchParameters);
|
|
631
|
-
if (
|
|
631
|
+
if (browserOptions.gui) params['headless'] = false;
|
|
632
632
|
_context9.next = 4;
|
|
633
633
|
return getBrowserPage(_puppeteer["default"], params);
|
|
634
634
|
case 4:
|
|
@@ -636,10 +636,10 @@ function _runWorker() {
|
|
|
636
636
|
browser = out.browser;
|
|
637
637
|
page = out.page;
|
|
638
638
|
recorder = new _puppeteerScreenRecorder.PuppeteerScreenRecorder(page, recorderConfig);
|
|
639
|
-
|
|
640
|
-
logsDir = "./test-console-output-".concat(
|
|
641
|
-
recordDir = "./test-record-".concat(
|
|
642
|
-
if (!
|
|
639
|
+
currentBrowserNum = browsersId;
|
|
640
|
+
logsDir = "./test-console-output-".concat(currentBrowserNum, ".log");
|
|
641
|
+
recordDir = "./test-record-".concat(currentBrowserNum, ".mp4");
|
|
642
|
+
if (!browserOptions.record) {
|
|
643
643
|
_context9.next = 20;
|
|
644
644
|
break;
|
|
645
645
|
}
|
|
@@ -682,10 +682,10 @@ function _runWorker() {
|
|
|
682
682
|
});
|
|
683
683
|
});
|
|
684
684
|
});
|
|
685
|
-
}, testExecutionData,
|
|
685
|
+
}, testExecutionData, browserOptions);
|
|
686
686
|
case 22:
|
|
687
687
|
testingResults = _context9.sent;
|
|
688
|
-
if (!
|
|
688
|
+
if (!browserOptions.record) {
|
|
689
689
|
_context9.next = 26;
|
|
690
690
|
break;
|
|
691
691
|
}
|
|
@@ -714,28 +714,28 @@ function _runWorker() {
|
|
|
714
714
|
}
|
|
715
715
|
}, _callee10);
|
|
716
716
|
}));
|
|
717
|
-
return
|
|
717
|
+
return _runBrowser.apply(this, arguments);
|
|
718
718
|
}
|
|
719
|
-
function
|
|
720
|
-
return
|
|
719
|
+
function mergeBrowsersResults(_x21) {
|
|
720
|
+
return _mergeBrowsersResults.apply(this, arguments);
|
|
721
721
|
}
|
|
722
|
-
function
|
|
723
|
-
|
|
724
|
-
var mergedResult, _iterator5, _step5,
|
|
722
|
+
function _mergeBrowsersResults() {
|
|
723
|
+
_mergeBrowsersResults = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(browsersResults) {
|
|
724
|
+
var mergedResult, _iterator5, _step5, browsersResult, resultToMerdge1, resultToMerdge2, header;
|
|
725
725
|
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
726
726
|
while (1) switch (_context11.prev = _context11.next) {
|
|
727
727
|
case 0:
|
|
728
728
|
mergedResult = {
|
|
729
|
-
failed:
|
|
730
|
-
verbosePassed:
|
|
731
|
-
verboseSkipped:
|
|
732
|
-
verboseFailed:
|
|
733
|
-
passedAmount:
|
|
734
|
-
skippedAmount:
|
|
735
|
-
failedAmount:
|
|
736
|
-
csv:
|
|
729
|
+
failed: browsersResults[0].failed,
|
|
730
|
+
verbosePassed: browsersResults[0].verbosePassed,
|
|
731
|
+
verboseSkipped: browsersResults[0].verboseSkipped,
|
|
732
|
+
verboseFailed: browsersResults[0].verboseFailed,
|
|
733
|
+
passedAmount: browsersResults[0].passedAmount,
|
|
734
|
+
skippedAmount: browsersResults[0].skippedAmount,
|
|
735
|
+
failedAmount: browsersResults[0].failedAmount,
|
|
736
|
+
csv: browsersResults[0].csv
|
|
737
737
|
};
|
|
738
|
-
_iterator5 = _createForOfIteratorHelper(
|
|
738
|
+
_iterator5 = _createForOfIteratorHelper(browsersResults);
|
|
739
739
|
_context11.prev = 2;
|
|
740
740
|
_iterator5.s();
|
|
741
741
|
case 4:
|
|
@@ -743,22 +743,22 @@ function _mergeWorkersResults() {
|
|
|
743
743
|
_context11.next = 21;
|
|
744
744
|
break;
|
|
745
745
|
}
|
|
746
|
-
|
|
747
|
-
if (!(mergedResult.csv ===
|
|
746
|
+
browsersResult = _step5.value;
|
|
747
|
+
if (!(mergedResult.csv === browsersResult.csv)) {
|
|
748
748
|
_context11.next = 8;
|
|
749
749
|
break;
|
|
750
750
|
}
|
|
751
751
|
return _context11.abrupt("continue", 19);
|
|
752
752
|
case 8:
|
|
753
|
-
mergedResult.failed = mergedResult.failed &&
|
|
754
|
-
mergedResult.verbosePassed = "".concat(mergedResult.verbosePassed.trim(), "\n").concat(
|
|
755
|
-
mergedResult.verboseFailed = "".concat(mergedResult.verboseFailed.trim(), "\n").concat(
|
|
756
|
-
mergedResult.verboseSkipped = "".concat(mergedResult.verboseSkipped.trim(), "\n").concat(
|
|
757
|
-
mergedResult.passedAmount +=
|
|
758
|
-
mergedResult.failedAmount +=
|
|
759
|
-
mergedResult.skippedAmount +=
|
|
753
|
+
mergedResult.failed = mergedResult.failed && browsersResult.failed;
|
|
754
|
+
mergedResult.verbosePassed = "".concat(mergedResult.verbosePassed.trim(), "\n").concat(browsersResult.verbosePassed.trim());
|
|
755
|
+
mergedResult.verboseFailed = "".concat(mergedResult.verboseFailed.trim(), "\n").concat(browsersResult.verboseFailed.trim());
|
|
756
|
+
mergedResult.verboseSkipped = "".concat(mergedResult.verboseSkipped.trim(), "\n").concat(browsersResult.verboseSkipped.trim());
|
|
757
|
+
mergedResult.passedAmount += browsersResult.passedAmount;
|
|
758
|
+
mergedResult.failedAmount += browsersResult.failedAmount;
|
|
759
|
+
mergedResult.skippedAmount += browsersResult.skippedAmount;
|
|
760
760
|
resultToMerdge1 = mergedResult.csv.trim().split('\n');
|
|
761
|
-
resultToMerdge2 =
|
|
761
|
+
resultToMerdge2 = browsersResult.csv.trim().split('\n');
|
|
762
762
|
header = resultToMerdge1[0];
|
|
763
763
|
mergedResult.csv = [header].concat((0, _toConsumableArray2["default"])(resultToMerdge1.slice(1)), (0, _toConsumableArray2["default"])(resultToMerdge2.slice(1))).join('\n');
|
|
764
764
|
case 19:
|
|
@@ -783,7 +783,7 @@ function _mergeWorkersResults() {
|
|
|
783
783
|
}
|
|
784
784
|
}, _callee11, null, [[2, 23, 26, 29]]);
|
|
785
785
|
}));
|
|
786
|
-
return
|
|
786
|
+
return _mergeBrowsersResults.apply(this, arguments);
|
|
787
787
|
}
|
|
788
788
|
var TestContext = exports.TestContext = /*#__PURE__*/(0, _createClass2["default"])(function TestContext(catchUnhandled, report) {
|
|
789
789
|
(0, _classCallCheck2["default"])(this, TestContext);
|
package/package.json
CHANGED