datagrok-tools 4.13.51 → 4.13.52

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 CHANGED
@@ -1,5 +1,12 @@
1
1
  # Datagrok-tools changelog
2
2
 
3
+ ## 4.13.52 (2024-12-30)
4
+
5
+ ### Features
6
+
7
+ * Refactored workers to browsers
8
+
9
+
3
10
  ## 4.13.51 (2024-12-30)
4
11
 
5
12
  ### Features
@@ -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] [--workers-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--workers-count Set amount of workers 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";
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 = `
@@ -26,7 +26,7 @@ var order = /*#__PURE__*/function (order) {
26
26
  order[order["alphabetical"] = 1] = "alphabetical";
27
27
  order[order["packageRandom"] = 2] = "packageRandom";
28
28
  order[order["packageAlphabetical"] = 3] = "packageAlphabetical";
29
- order[order["testToWorker"] = 4] = "testToWorker";
29
+ order[order["testToBrowser"] = 4] = "testToBrowser";
30
30
  return order;
31
31
  }(order || {});
32
32
  function getEnumOrder(orderStr) {
@@ -47,8 +47,8 @@ function getEnumOrder(orderStr) {
47
47
  case "packageatoz":
48
48
  return order.packageAlphabetical;
49
49
  break;
50
- case "testtoworker":
51
- return order.testToWorker;
50
+ case "testtobrowser":
51
+ return order.testToBrowser;
52
52
  break;
53
53
  }
54
54
  return order.random;
@@ -58,15 +58,15 @@ var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
58
58
  var confPath = _path["default"].join(grokDir, 'config.yaml');
59
59
  var csvReportDir = _path["default"].join(curDir, 'test-report.csv');
60
60
  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.testToWorker, _orderFunctions.setTestToWorkerOrder]]);
62
- var workersStarted = 0;
61
+ var orderingFunctions = new Map([[order.random, _orderFunctions.setRandomOrder], [order.alphabetical, _orderFunctions.setAlphabeticalOrder], [order.packageRandom, _orderFunctions.setPackageRandomOrder], [order.packageAlphabetical, _orderFunctions.setPackageAlphabeticalOrder], [order.testToBrowser, _orderFunctions.setTestToBrowserOrder]]);
62
+ var browsersStarted = 0;
63
63
  function testAll(_x) {
64
64
  return _testAll.apply(this, arguments);
65
65
  }
66
66
  function _testAll() {
67
67
  _testAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(args) {
68
68
  var _args$tags, _args$order, _args$benchmark, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose;
69
- var config, packagesToRun, testsObj, filteredTests, workersOrder, testsResults, i, _iterator, _step, result;
69
+ var config, packagesToRun, testsObj, filteredTests, browsersOrder, testsResults, i, _iterator, _step, result;
70
70
  return _regenerator["default"].wrap(function _callee$(_context) {
71
71
  while (1) switch (_context.prev = _context.next) {
72
72
  case 0:
@@ -87,11 +87,11 @@ function _testAll() {
87
87
  case 10:
88
88
  filteredTests = _context.sent;
89
89
  _context.next = 13;
90
- return setWorkersOrder(filteredTests, getEnumOrder((_args$order = args.order) !== null && _args$order !== void 0 ? _args$order : ''), args['workers-count'], args.testRepeat);
90
+ return setBrowsersOrder(filteredTests, getEnumOrder((_args$order = args.order) !== null && _args$order !== void 0 ? _args$order : ''), args['browsers-count'], args.testRepeat);
91
91
  case 13:
92
- workersOrder = _context.sent;
92
+ browsersOrder = _context.sent;
93
93
  _context.next = 16;
94
- return runTests(workersOrder, {
94
+ return runTests(browsersOrder, {
95
95
  benchmark: (_args$benchmark = args.benchmark) !== null && _args$benchmark !== void 0 ? _args$benchmark : false,
96
96
  catchUnhandled: (_args$catchUnhandled = args.catchUnhandled) !== null && _args$catchUnhandled !== void 0 ? _args$catchUnhandled : false,
97
97
  gui: (_args$gui = args.gui) !== null && _args$gui !== void 0 ? _args$gui : false,
@@ -106,8 +106,8 @@ function _testAll() {
106
106
  try {
107
107
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
108
108
  result = _step.value;
109
- console.log("\nWorker #".concat(i++, " "));
110
- (0, _testUtils.printWorkersResult)(result, args.verbose);
109
+ console.log("\nBrowser #".concat(i++, " "));
110
+ (0, _testUtils.printBrowsersResult)(result, args.verbose);
111
111
  }
112
112
  } catch (err) {
113
113
  _iterator.e(err);
@@ -228,13 +228,13 @@ function _filterTests() {
228
228
  }));
229
229
  return _filterTests.apply(this, arguments);
230
230
  }
231
- function setWorkersOrder(_x4) {
232
- return _setWorkersOrder.apply(this, arguments);
231
+ function setBrowsersOrder(_x4) {
232
+ return _setBrowsersOrder.apply(this, arguments);
233
233
  }
234
- function _setWorkersOrder() {
235
- _setWorkersOrder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(tests) {
234
+ function _setBrowsersOrder() {
235
+ _setBrowsersOrder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(tests) {
236
236
  var invocationOrder,
237
- countOfWorkers,
237
+ countOfBrowsers,
238
238
  testRepeats,
239
239
  resultOrder,
240
240
  orderingFunction,
@@ -243,7 +243,7 @@ function _setWorkersOrder() {
243
243
  while (1) switch (_context4.prev = _context4.next) {
244
244
  case 0:
245
245
  invocationOrder = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : 0;
246
- countOfWorkers = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : 1;
246
+ countOfBrowsers = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : 1;
247
247
  testRepeats = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : 1;
248
248
  resultOrder = [];
249
249
  orderingFunction = orderingFunctions.get(invocationOrder);
@@ -251,7 +251,7 @@ function _setWorkersOrder() {
251
251
  _context4.next = 9;
252
252
  break;
253
253
  }
254
- resultOrder = orderingFunction(tests, countOfWorkers, testRepeats);
254
+ resultOrder = orderingFunction(tests, countOfBrowsers, testRepeats);
255
255
  _context4.next = 10;
256
256
  break;
257
257
  case 9:
@@ -264,31 +264,31 @@ function _setWorkersOrder() {
264
264
  }
265
265
  }, _callee3);
266
266
  }));
267
- return _setWorkersOrder.apply(this, arguments);
267
+ return _setBrowsersOrder.apply(this, arguments);
268
268
  }
269
269
  function runTests(_x5, _x6) {
270
270
  return _runTests.apply(this, arguments);
271
271
  }
272
272
  function _runTests() {
273
- _runTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(workersOrder, workerOptions) {
274
- var workersCommands, _iterator3, _step3, workerOrder, workersPromises, _i, _workersCommands, workerCommands, resultObjects;
273
+ _runTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(browsersOrder, browserOptions) {
274
+ var browsersCommands, _iterator3, _step3, browserOrder, browsersPromises, _i, _browsersCommands, browserCommands, resultObjects;
275
275
  return _regenerator["default"].wrap(function _callee4$(_context5) {
276
276
  while (1) switch (_context5.prev = _context5.next) {
277
277
  case 0:
278
- workersCommands = [];
279
- _iterator3 = _createForOfIteratorHelper(workersOrder);
278
+ browsersCommands = [];
279
+ _iterator3 = _createForOfIteratorHelper(browsersOrder);
280
280
  try {
281
281
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
282
- workerOrder = _step3.value;
283
- workersCommands.push(workerOrder.map(function (testObj) {
282
+ browserOrder = _step3.value;
283
+ browsersCommands.push(browserOrder.map(function (testObj) {
284
284
  return {
285
285
  "package": testObj.packageName,
286
286
  params: {
287
287
  category: testObj.category,
288
288
  test: testObj.name,
289
289
  options: {
290
- catchUnhandled: workerOptions.catchUnhandled,
291
- report: workerOptions.report
290
+ catchUnhandled: browserOptions.catchUnhandled,
291
+ report: browserOptions.report
292
292
  }
293
293
  }
294
294
  };
@@ -299,13 +299,13 @@ function _runTests() {
299
299
  } finally {
300
300
  _iterator3.f();
301
301
  }
302
- workersPromises = [];
303
- for (_i = 0, _workersCommands = workersCommands; _i < _workersCommands.length; _i++) {
304
- workerCommands = _workersCommands[_i];
305
- workersPromises.push((0, _testUtils.runWorker)(workerCommands, workerOptions, workersStarted++, testInvocationTimeout));
302
+ browsersPromises = [];
303
+ for (_i = 0, _browsersCommands = browsersCommands; _i < _browsersCommands.length; _i++) {
304
+ browserCommands = _browsersCommands[_i];
305
+ browsersPromises.push((0, _testUtils.runBrowser)(browserCommands, browserOptions, browsersStarted++, testInvocationTimeout));
306
306
  }
307
307
  _context5.next = 7;
308
- return Promise.all(workersPromises);
308
+ return Promise.all(browsersPromises);
309
309
  case 7:
310
310
  resultObjects = _context5.sent;
311
311
  return _context5.abrupt("return", resultObjects);
@@ -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.printWorkersResult)(res, args.verbose);
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, workerId;
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
- workerId = 1;
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.runWorker)(organized, {
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
- }, workerId, testInvocationTimeout);
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
- workerId++;
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.mergeWorkersResults)(testsResults);
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.runWorker)([_test3], {
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.setTestToWorkerOrder = setTestToWorkerOrder;
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, workersAmount, testRepeats) {
20
- if (workersAmount > tests.length) workersAmount = tests.length;
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, workersAmount);
23
+ return splitArray(orderedTests, browsersAmount);
24
24
  }
25
- function setPackageRandomOrder(tests, workersAmount, testRepeats) {
25
+ function setPackageRandomOrder(tests, browsersAmount, testRepeats) {
26
26
  var packages = splitTestsByPackages(tests);
27
- if (workersAmount > packages.size) workersAmount = packages.size;
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()), workersAmount);
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, workersAmount, testRepeats) {
63
- if (workersAmount > tests.length) workersAmount = tests.length;
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, workersAmount);
68
+ return splitArray(orderedTests, browsersAmount);
69
69
  }
70
- function setPackageAlphabeticalOrder(tests, workersAmount, testRepeats) {
70
+ function setPackageAlphabeticalOrder(tests, browsersAmount, testRepeats) {
71
71
  var packages = splitTestsByPackages(tests);
72
- if (workersAmount > packages.size) workersAmount = packages.size;
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()), workersAmount);
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 setTestToWorkerOrder(tests, workersAmount, testRepeats) {
107
+ function setTestToBrowserOrder(tests, browsersAmount, testRepeats) {
108
108
  var splittedTestsArray = [];
109
- if (workersAmount > tests.length) workersAmount = tests.length;
110
- for (var i = 0; i < workersAmount; i++) {
111
- var orderedTests = shuffle(tests);
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
- for (var _i3 = 0, _orderedTests = orderedTests; _i3 < _orderedTests.length; _i3++) {
114
- var test = _orderedTests[_i3];
115
- splittedTestsArray[splittedTestsArray.length - 1].push(_objectSpread({}, test));
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 _iterator5 = _createForOfIteratorHelper(tests),
126
- _step5;
134
+ var _iterator6 = _createForOfIteratorHelper(tests),
135
+ _step6;
127
136
  try {
128
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
129
- var test = _step5.value;
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
- _iterator5.e(err);
142
+ _iterator6.e(err);
134
143
  } finally {
135
- _iterator5.f();
144
+ _iterator6.f();
136
145
  }
137
146
  return resultMap;
138
147
  }
139
148
  function repeatTests(tests, testRepeats) {
140
149
  var repeatedTests = [];
141
- var _iterator6 = _createForOfIteratorHelper(tests),
142
- _step6;
150
+ var _iterator7 = _createForOfIteratorHelper(tests),
151
+ _step7;
143
152
  try {
144
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
145
- var test = _step6.value;
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
- _iterator6.e(err);
160
+ _iterator7.e(err);
152
161
  } finally {
153
- _iterator6.f();
162
+ _iterator7.f();
154
163
  }
155
164
  return repeatedTests;
156
165
  }
@@ -15,11 +15,11 @@ exports.getToken = getToken;
15
15
  exports.getWebUrl = getWebUrl;
16
16
  exports.loadPackages = loadPackages;
17
17
  exports.loadTestsList = loadTestsList;
18
- exports.mergeWorkersResults = mergeWorkersResults;
19
- exports.printWorkersResult = printWorkersResult;
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 printWorkersResult(workerResult) {
579
- var _workerResult$failedA, _workerResult$verbose3;
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 _workerResult$passedA, _workerResult$verbose, _workerResult$skipped, _workerResult$verbose2;
583
- if (((_workerResult$passedA = workerResult.passedAmount) !== null && _workerResult$passedA !== void 0 ? _workerResult$passedA : 0) > 0 && ((_workerResult$verbose = workerResult.verbosePassed) !== null && _workerResult$verbose !== void 0 ? _workerResult$verbose : []).length > 0) {
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(workerResult.verbosePassed);
585
+ console.log(browserResult.verbosePassed);
586
586
  }
587
- if (((_workerResult$skipped = workerResult.skippedAmount) !== null && _workerResult$skipped !== void 0 ? _workerResult$skipped : 0) > 0 && ((_workerResult$verbose2 = workerResult.verboseSkipped) !== null && _workerResult$verbose2 !== void 0 ? _workerResult$verbose2 : []).length > 0) {
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(workerResult.verboseSkipped);
589
+ console.log(browserResult.verboseSkipped);
590
590
  }
591
591
  }
592
- if (((_workerResult$failedA = workerResult.failedAmount) !== null && _workerResult$failedA !== void 0 ? _workerResult$failedA : 0) > 0 && ((_workerResult$verbose3 = workerResult.verboseFailed) !== null && _workerResult$verbose3 !== void 0 ? _workerResult$verbose3 : []).length > 0) {
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(workerResult.verboseFailed);
594
+ console.log(browserResult.verboseFailed);
595
595
  }
596
- console.log("Passed amount: " + (workerResult === null || workerResult === void 0 ? void 0 : workerResult.passedAmount));
597
- console.log("Skipped amount: " + (workerResult === null || workerResult === void 0 ? void 0 : workerResult.skippedAmount));
598
- console.log("Failed amount: " + (workerResult === null || workerResult === void 0 ? void 0 : workerResult.failedAmount));
599
- if (workerResult.failed) {
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 runWorker(_x18, _x19, _x20) {
614
- return _runWorker.apply(this, arguments);
613
+ function runBrowser(_x18, _x19, _x20) {
614
+ return _runBrowser.apply(this, arguments);
615
615
  }
616
- function _runWorker() {
617
- _runWorker = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(testExecutionData, workerOptions, workersId) {
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, currentWorkerNum, logsDir, recordDir, testingResults;
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 (workerOptions.gui) params['headless'] = false;
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
- currentWorkerNum = workersId;
640
- logsDir = "./test-console-output-".concat(currentWorkerNum, ".log");
641
- recordDir = "./test-record-".concat(currentWorkerNum, ".mp4");
642
- if (!workerOptions.record) {
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, workerOptions);
685
+ }, testExecutionData, browserOptions);
686
686
  case 22:
687
687
  testingResults = _context9.sent;
688
- if (!workerOptions.record) {
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 _runWorker.apply(this, arguments);
717
+ return _runBrowser.apply(this, arguments);
718
718
  }
719
- function mergeWorkersResults(_x21) {
720
- return _mergeWorkersResults.apply(this, arguments);
719
+ function mergeBrowsersResults(_x21) {
720
+ return _mergeBrowsersResults.apply(this, arguments);
721
721
  }
722
- function _mergeWorkersResults() {
723
- _mergeWorkersResults = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(workersResults) {
724
- var mergedResult, _iterator5, _step5, workersResult, resultToMerdge1, resultToMerdge2, header;
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: workersResults[0].failed,
730
- verbosePassed: workersResults[0].verbosePassed,
731
- verboseSkipped: workersResults[0].verboseSkipped,
732
- verboseFailed: workersResults[0].verboseFailed,
733
- passedAmount: workersResults[0].passedAmount,
734
- skippedAmount: workersResults[0].skippedAmount,
735
- failedAmount: workersResults[0].failedAmount,
736
- csv: workersResults[0].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(workersResults);
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
- workersResult = _step5.value;
747
- if (!(mergedResult.csv === workersResult.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 && workersResult.failed;
754
- mergedResult.verbosePassed = "".concat(mergedResult.verbosePassed.trim(), "\n").concat(workersResult.verbosePassed.trim());
755
- mergedResult.verboseFailed = "".concat(mergedResult.verboseFailed.trim(), "\n").concat(workersResult.verboseFailed.trim());
756
- mergedResult.verboseSkipped = "".concat(mergedResult.verboseSkipped.trim(), "\n").concat(workersResult.verboseSkipped.trim());
757
- mergedResult.passedAmount += workersResult.passedAmount;
758
- mergedResult.failedAmount += workersResult.failedAmount;
759
- mergedResult.skippedAmount += workersResult.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 = workersResult.csv.trim().split('\n');
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 _mergeWorkersResults.apply(this, arguments);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datagrok-tools",
3
- "version": "4.13.51",
3
+ "version": "4.13.52",
4
4
  "description": "Utility to upload and publish packages to Datagrok",
5
5
  "homepage": "https://github.com/datagrok-ai/public/tree/master/tools#readme",
6
6
  "dependencies": {