datagrok-tools 4.13.22 → 4.13.23

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,6 +1,12 @@
1
1
  # Datagrok-tools changelog
2
2
 
3
3
 
4
+ ## 4.13.23 (2024-09-23)
5
+
6
+ ### Features
7
+
8
+ * Test bug all fixes
9
+
4
10
  ## 4.13.22 (2024-09-20)
5
11
 
6
12
  ### Features
@@ -14,9 +14,9 @@ var _path = _interopRequireDefault(require("path"));
14
14
  var _puppeteer = _interopRequireDefault(require("puppeteer"));
15
15
  var _puppeteerScreenRecorder = require("puppeteer-screen-recorder");
16
16
  var _jsYaml = _interopRequireDefault(require("js-yaml"));
17
+ var utils = _interopRequireWildcard(require("../utils/utils"));
17
18
  var color = _interopRequireWildcard(require("../utils/color-utils"));
18
19
  var testUtils = _interopRequireWildcard(require("../utils/test-utils"));
19
- var _utils = require("../utils/utils");
20
20
  var _orderFunctions = require("../utils/order-functions");
21
21
  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); }
22
22
  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; }
@@ -51,14 +51,12 @@ function getEnumOrder(orderStr) {
51
51
  }
52
52
  return order.random;
53
53
  }
54
+ var curDir = process.cwd();
54
55
  var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
55
56
  var confPath = _path["default"].join(grokDir, 'config.yaml');
56
- var config = _jsYaml["default"].load(_fs["default"].readFileSync(confPath, {
57
- encoding: 'utf-8'
58
- }));
59
- var curDir = process.cwd();
57
+ var csvReportDir = _path["default"].join(curDir, 'test-report.csv');
60
58
  var testCollectionTimeout = 100000;
61
- var testInvocationTimeout = 3600000;
59
+ var testInvocationTimeout = 7200000;
62
60
  var orderingFunctions = new Map([[order.random, _orderFunctions.setRandomOrder], [order.alphabetical, _orderFunctions.setAlphabeticalOrder], [order.packageRandom, _orderFunctions.setPackageRandomOrder], [order.packageAlphabetical, _orderFunctions.setPackageAlphabeticalOrder]]);
63
61
  var workersStarted = 0;
64
62
  function testAll(_x) {
@@ -67,35 +65,31 @@ function testAll(_x) {
67
65
  function _testAll() {
68
66
  _testAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(args) {
69
67
  var _args$tags, _args$order, _args$benchmark, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose;
70
- var builtPackages, packagesToRun, testsObj, filteredTests, workersOrder, testsResults, i, _iterator, _step, result;
68
+ var config, packagesToRun, testsObj, filteredTests, workersOrder, testsResults, i, _iterator, _step, result;
71
69
  return _regenerator["default"].wrap(function _callee$(_context) {
72
70
  while (1) switch (_context.prev = _context.next) {
73
71
  case 0:
74
- setHost(args);
75
- _context.next = 3;
76
- return buildPackages(args.packages, args.host, args['skip-publish'], args['skip-build']);
77
- case 3:
78
- builtPackages = _context.sent;
79
- packagesToRun = [];
80
- builtPackages.forEach(function (value, key) {
81
- if (value) {
82
- packagesToRun.push(key);
83
- }
84
- });
85
- _context.next = 8;
72
+ config = _jsYaml["default"].load(_fs["default"].readFileSync(confPath, {
73
+ encoding: 'utf-8'
74
+ }));
75
+ utils.setHost(args.host, config);
76
+ _context.next = 4;
77
+ return testUtils.loadPackages(curDir, args.packages, args.host, args['skip-publish'], args['skip-build']);
78
+ case 4:
79
+ packagesToRun = _context.sent;
80
+ _context.next = 7;
86
81
  return loadTestsList(packagesToRun, args.core);
87
- case 8:
82
+ case 7:
88
83
  testsObj = _context.sent;
89
- _context.next = 11;
84
+ _context.next = 10;
90
85
  return filterTests(testsObj, ((_args$tags = args.tags) !== null && _args$tags !== void 0 ? _args$tags : "").split(" "), args['stress-test'], args.benchmark);
91
- case 11:
86
+ case 10:
92
87
  filteredTests = _context.sent;
93
- _context.next = 14;
88
+ _context.next = 13;
94
89
  return setWorkersOrder(filteredTests, getEnumOrder((_args$order = args.order) !== null && _args$order !== void 0 ? _args$order : ''), args.workersCount, args.testRepeat);
95
- case 14:
90
+ case 13:
96
91
  workersOrder = _context.sent;
97
- console.log(filteredTests);
98
- _context.next = 18;
92
+ _context.next = 16;
99
93
  return runTests(workersOrder, {
100
94
  benchmark: (_args$benchmark = args.benchmark) !== null && _args$benchmark !== void 0 ? _args$benchmark : false,
101
95
  catchUnhandled: (_args$catchUnhandled = args.catchUnhandled) !== null && _args$catchUnhandled !== void 0 ? _args$catchUnhandled : false,
@@ -104,7 +98,7 @@ function _testAll() {
104
98
  report: (_args$report = args.report) !== null && _args$report !== void 0 ? _args$report : false,
105
99
  verbose: (_args$verbose = args.verbose) !== null && _args$verbose !== void 0 ? _args$verbose : false
106
100
  });
107
- case 18:
101
+ case 16:
108
102
  testsResults = _context.sent;
109
103
  i = 0;
110
104
  _iterator = _createForOfIteratorHelper(testsResults);
@@ -119,12 +113,17 @@ function _testAll() {
119
113
  } finally {
120
114
  _iterator.f();
121
115
  }
116
+ if (args.csv) {
117
+ saveCsvResults(testsResults.map(function (result) {
118
+ return result.csv;
119
+ }));
120
+ }
122
121
  return _context.abrupt("return", !testsResults.map(function (test) {
123
122
  return test.failed;
124
123
  }).some(function (failStatus) {
125
124
  return failStatus === true;
126
125
  }));
127
- case 23:
126
+ case 22:
128
127
  case "end":
129
128
  return _context.stop();
130
129
  }
@@ -132,147 +131,40 @@ function _testAll() {
132
131
  }));
133
132
  return _testAll.apply(this, arguments);
134
133
  }
135
- function setHost(args) {
136
- if (args.host) {
137
- if (args.host in config.servers) {
138
- process.env.HOST = args.host;
139
- console.log('Environment variable `HOST` is set to', args.host);
140
- } else {
141
- color.error("Unknown server alias. Please add it to ".concat(confPath));
142
- return false;
143
- }
144
- } else if (config["default"]) {
145
- process.env.HOST = config["default"];
146
- console.log('Environment variable `HOST` is set to', config["default"]);
147
- }
148
- }
149
- function buildPackages(_x2, _x3, _x4, _x5, _x6) {
150
- return _buildPackages.apply(this, arguments);
151
- }
152
- function _buildPackages() {
153
- _buildPackages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(packages, host, skipPublish, skipBuild, linkPackage) {
154
- var packagesToRun, hostString, _iterator2, _step2, pacakgeName, _iterator3, _step3, dirName, packageDir;
155
- return _regenerator["default"].wrap(function _callee2$(_context2) {
156
- while (1) switch (_context2.prev = _context2.next) {
157
- case 0:
158
- packagesToRun = new Map();
159
- hostString = host === undefined ? "" : "".concat(host);
160
- if (packages !== "all") {
161
- _iterator2 = _createForOfIteratorHelper((packages !== null && packages !== void 0 ? packages : "").split(' '));
162
- try {
163
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
164
- pacakgeName = _step2.value;
165
- packagesToRun.set(pacakgeName, false);
166
- }
167
- } catch (err) {
168
- _iterator2.e(err);
169
- } finally {
170
- _iterator2.f();
171
- }
172
- }
173
- _iterator3 = _createForOfIteratorHelper(_fs["default"].readdirSync(curDir));
174
- _context2.prev = 4;
175
- _iterator3.s();
176
- case 6:
177
- if ((_step3 = _iterator3.n()).done) {
178
- _context2.next = 26;
179
- break;
180
- }
181
- dirName = _step3.value;
182
- packageDir = _path["default"].join(curDir, dirName);
183
- if (_fs["default"].lstatSync(packageDir).isFile()) {
184
- _context2.next = 24;
185
- break;
186
- }
187
- if (!((0, _utils.isPackageDir)(packageDir) && (packagesToRun.get(dirName) !== undefined || packages === "all"))) {
188
- _context2.next = 24;
189
- break;
190
- }
191
- if (!(skipPublish != true)) {
192
- _context2.next = 22;
193
- break;
194
- }
195
- _context2.next = 14;
196
- return (0, _utils.runScript)("npm install", packageDir);
197
- case 14:
198
- if (!linkPackage) {
199
- _context2.next = 17;
200
- break;
201
- }
202
- _context2.next = 17;
203
- return (0, _utils.runScript)("grok link", packageDir);
204
- case 17:
205
- if (!(skipBuild != true)) {
206
- _context2.next = 20;
207
- break;
208
- }
209
- _context2.next = 20;
210
- return (0, _utils.runScript)("npm run build", packageDir);
211
- case 20:
212
- _context2.next = 22;
213
- return (0, _utils.runScript)("grok publish ".concat(hostString), packageDir);
214
- case 22:
215
- packagesToRun.set(dirName, true);
216
- console.log("Package published ".concat(dirName));
217
- case 24:
218
- _context2.next = 6;
219
- break;
220
- case 26:
221
- _context2.next = 31;
222
- break;
223
- case 28:
224
- _context2.prev = 28;
225
- _context2.t0 = _context2["catch"](4);
226
- _iterator3.e(_context2.t0);
227
- case 31:
228
- _context2.prev = 31;
229
- _iterator3.f();
230
- return _context2.finish(31);
231
- case 34:
232
- console.log();
233
- return _context2.abrupt("return", packagesToRun);
234
- case 36:
235
- case "end":
236
- return _context2.stop();
237
- }
238
- }, _callee2, null, [[4, 28, 31, 34]]);
239
- }));
240
- return _buildPackages.apply(this, arguments);
241
- }
242
- function loadTestsList(_x7) {
134
+ function loadTestsList(_x2) {
243
135
  return _loadTestsList.apply(this, arguments);
244
136
  }
245
137
  function _loadTestsList() {
246
- _loadTestsList = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(packages) {
138
+ _loadTestsList = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(packages) {
247
139
  var core,
248
140
  packageTestsData,
249
141
  testsList,
250
- _iterator4,
251
- _step4,
142
+ _iterator2,
143
+ _step2,
252
144
  testPackage,
253
145
  key,
254
- _iterator5,
255
- _step5,
146
+ _iterator3,
147
+ _step3,
256
148
  testValue,
257
- _args4 = arguments;
258
- return _regenerator["default"].wrap(function _callee4$(_context4) {
259
- while (1) switch (_context4.prev = _context4.next) {
149
+ _args3 = arguments;
150
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
151
+ while (1) switch (_context3.prev = _context3.next) {
260
152
  case 0:
261
- core = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : false;
262
- _context4.next = 3;
263
- return testUtils.timeout( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
153
+ core = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : false;
154
+ _context3.next = 3;
155
+ return testUtils.timeout( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
264
156
  var params, out, browser, page, r;
265
- return _regenerator["default"].wrap(function _callee3$(_context3) {
266
- while (1) switch (_context3.prev = _context3.next) {
157
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
158
+ while (1) switch (_context2.prev = _context2.next) {
267
159
  case 0:
268
160
  params = Object.assign({}, testUtils.defaultLaunchParameters); // params['headless'] = false;
269
- _context3.next = 3;
161
+ _context2.next = 3;
270
162
  return testUtils.getBrowserPage(_puppeteer["default"], params);
271
163
  case 3:
272
- out = _context3.sent;
164
+ out = _context2.sent;
273
165
  browser = out.browser;
274
166
  page = out.page;
275
- _context3.next = 8;
167
+ _context2.next = 8;
276
168
  return page.evaluate(function (packages, coreTests) {
277
169
  return new Promise(function (resolve, reject) {
278
170
  var promises = [];
@@ -316,105 +208,105 @@ function _loadTestsList() {
316
208
  });
317
209
  }, packages, core);
318
210
  case 8:
319
- r = _context3.sent;
211
+ r = _context2.sent;
320
212
  if (!(browser != null)) {
321
- _context3.next = 12;
213
+ _context2.next = 12;
322
214
  break;
323
215
  }
324
- _context3.next = 12;
216
+ _context2.next = 12;
325
217
  return browser.close();
326
218
  case 12:
327
- return _context3.abrupt("return", r);
219
+ return _context2.abrupt("return", r);
328
220
  case 13:
329
221
  case "end":
330
- return _context3.stop();
222
+ return _context2.stop();
331
223
  }
332
- }, _callee3);
224
+ }, _callee2);
333
225
  })), testCollectionTimeout);
334
226
  case 3:
335
- packageTestsData = _context4.sent;
227
+ packageTestsData = _context3.sent;
336
228
  testsList = [];
337
- _iterator4 = _createForOfIteratorHelper(packageTestsData);
229
+ _iterator2 = _createForOfIteratorHelper(packageTestsData);
338
230
  try {
339
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
340
- testPackage = _step4.value;
231
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
232
+ testPackage = _step2.value;
341
233
  for (key in testPackage.tests) {
342
234
  if (testPackage.tests.hasOwnProperty(key)) {
343
- _iterator5 = _createForOfIteratorHelper(testPackage.tests[key].tests);
235
+ _iterator3 = _createForOfIteratorHelper(testPackage.tests[key].tests);
344
236
  try {
345
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
346
- testValue = _step5.value;
237
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
238
+ testValue = _step3.value;
347
239
  testValue.packageName = testPackage.packageName;
348
240
  testsList.push(testValue);
349
241
  }
350
242
  } catch (err) {
351
- _iterator5.e(err);
243
+ _iterator3.e(err);
352
244
  } finally {
353
- _iterator5.f();
245
+ _iterator3.f();
354
246
  }
355
247
  }
356
248
  }
357
249
  }
358
250
  } catch (err) {
359
- _iterator4.e(err);
251
+ _iterator2.e(err);
360
252
  } finally {
361
- _iterator4.f();
253
+ _iterator2.f();
362
254
  }
363
- return _context4.abrupt("return", testsList);
255
+ return _context3.abrupt("return", testsList);
364
256
  case 8:
365
257
  case "end":
366
- return _context4.stop();
258
+ return _context3.stop();
367
259
  }
368
- }, _callee4);
260
+ }, _callee3);
369
261
  }));
370
262
  return _loadTestsList.apply(this, arguments);
371
263
  }
372
- function filterTests(_x8, _x9) {
264
+ function filterTests(_x3, _x4) {
373
265
  return _filterTests.apply(this, arguments);
374
266
  }
375
267
  function _filterTests() {
376
- _filterTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(tests, tags) {
268
+ _filterTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(tests, tags) {
377
269
  var stressTest,
378
270
  benchmark,
379
271
  filteredTests,
380
272
  stressTestValue,
381
273
  benchmarkValue,
382
- _iterator6,
383
- _step6,
274
+ _iterator4,
275
+ _step4,
384
276
  _loop,
385
277
  _ret,
386
- _args6 = arguments;
387
- return _regenerator["default"].wrap(function _callee5$(_context6) {
388
- while (1) switch (_context6.prev = _context6.next) {
278
+ _args5 = arguments;
279
+ return _regenerator["default"].wrap(function _callee4$(_context5) {
280
+ while (1) switch (_context5.prev = _context5.next) {
389
281
  case 0:
390
- stressTest = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : false;
391
- benchmark = _args6.length > 3 && _args6[3] !== undefined ? _args6[3] : false;
282
+ stressTest = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : false;
283
+ benchmark = _args5.length > 3 && _args5[3] !== undefined ? _args5[3] : false;
392
284
  filteredTests = [];
393
285
  stressTestValue = tags.includes("stress-test") || stressTest;
394
286
  benchmarkValue = benchmark;
395
287
  tags = tags.filter(function (tag) {
396
288
  return tag !== "stress-test" && tag != "";
397
289
  });
398
- _iterator6 = _createForOfIteratorHelper(tests);
399
- _context6.prev = 7;
290
+ _iterator4 = _createForOfIteratorHelper(tests);
291
+ _context5.prev = 7;
400
292
  _loop = /*#__PURE__*/_regenerator["default"].mark(function _loop() {
401
293
  var _test$options, _test$options2, _test$options3, _tags;
402
294
  var test, hasMatchingTags;
403
- return _regenerator["default"].wrap(function _loop$(_context5) {
404
- while (1) switch (_context5.prev = _context5.next) {
295
+ return _regenerator["default"].wrap(function _loop$(_context4) {
296
+ while (1) switch (_context4.prev = _context4.next) {
405
297
  case 0:
406
- test = _step6.value;
298
+ test = _step4.value;
407
299
  if (!(benchmarkValue && ((_test$options = test.options) === null || _test$options === void 0 ? void 0 : _test$options.benchmark) !== true)) {
408
- _context5.next = 3;
300
+ _context4.next = 3;
409
301
  break;
410
302
  }
411
- return _context5.abrupt("return", 0);
303
+ return _context4.abrupt("return", 0);
412
304
  case 3:
413
305
  if (!(stressTestValue && ((_test$options2 = test.options) === null || _test$options2 === void 0 ? void 0 : _test$options2.stressTest) !== true && !((_test$options3 = test.options) !== null && _test$options3 !== void 0 && (_test$options3 = _test$options3.tags) !== null && _test$options3 !== void 0 && _test$options3.includes("stressTest")))) {
414
- _context5.next = 5;
306
+ _context4.next = 5;
415
307
  break;
416
308
  }
417
- return _context5.abrupt("return", 0);
309
+ return _context4.abrupt("return", 0);
418
310
  case 5:
419
311
  hasMatchingTags = tags.some(function (tag) {
420
312
  var _test$options4;
@@ -423,100 +315,100 @@ function _filterTests() {
423
315
  if (hasMatchingTags || ((_tags = tags) === null || _tags === void 0 ? void 0 : _tags.length) === 0) filteredTests.push(test);
424
316
  case 7:
425
317
  case "end":
426
- return _context5.stop();
318
+ return _context4.stop();
427
319
  }
428
320
  }, _loop);
429
321
  });
430
- _iterator6.s();
322
+ _iterator4.s();
431
323
  case 10:
432
- if ((_step6 = _iterator6.n()).done) {
433
- _context6.next = 17;
324
+ if ((_step4 = _iterator4.n()).done) {
325
+ _context5.next = 17;
434
326
  break;
435
327
  }
436
- return _context6.delegateYield(_loop(), "t0", 12);
328
+ return _context5.delegateYield(_loop(), "t0", 12);
437
329
  case 12:
438
- _ret = _context6.t0;
330
+ _ret = _context5.t0;
439
331
  if (!(_ret === 0)) {
440
- _context6.next = 15;
332
+ _context5.next = 15;
441
333
  break;
442
334
  }
443
- return _context6.abrupt("continue", 15);
335
+ return _context5.abrupt("continue", 15);
444
336
  case 15:
445
- _context6.next = 10;
337
+ _context5.next = 10;
446
338
  break;
447
339
  case 17:
448
- _context6.next = 22;
340
+ _context5.next = 22;
449
341
  break;
450
342
  case 19:
451
- _context6.prev = 19;
452
- _context6.t1 = _context6["catch"](7);
453
- _iterator6.e(_context6.t1);
343
+ _context5.prev = 19;
344
+ _context5.t1 = _context5["catch"](7);
345
+ _iterator4.e(_context5.t1);
454
346
  case 22:
455
- _context6.prev = 22;
456
- _iterator6.f();
457
- return _context6.finish(22);
347
+ _context5.prev = 22;
348
+ _iterator4.f();
349
+ return _context5.finish(22);
458
350
  case 25:
459
- return _context6.abrupt("return", filteredTests);
351
+ return _context5.abrupt("return", filteredTests);
460
352
  case 26:
461
353
  case "end":
462
- return _context6.stop();
354
+ return _context5.stop();
463
355
  }
464
- }, _callee5, null, [[7, 19, 22, 25]]);
356
+ }, _callee4, null, [[7, 19, 22, 25]]);
465
357
  }));
466
358
  return _filterTests.apply(this, arguments);
467
359
  }
468
- function setWorkersOrder(_x10) {
360
+ function setWorkersOrder(_x5) {
469
361
  return _setWorkersOrder.apply(this, arguments);
470
362
  }
471
363
  function _setWorkersOrder() {
472
- _setWorkersOrder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(tests) {
364
+ _setWorkersOrder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(tests) {
473
365
  var invocationOrder,
474
366
  countOfWorkers,
475
367
  testRepeats,
476
368
  resultOrder,
477
369
  orderingFunction,
478
- _args7 = arguments;
479
- return _regenerator["default"].wrap(function _callee6$(_context7) {
480
- while (1) switch (_context7.prev = _context7.next) {
370
+ _args6 = arguments;
371
+ return _regenerator["default"].wrap(function _callee5$(_context6) {
372
+ while (1) switch (_context6.prev = _context6.next) {
481
373
  case 0:
482
- invocationOrder = _args7.length > 1 && _args7[1] !== undefined ? _args7[1] : 0;
483
- countOfWorkers = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : 1;
484
- testRepeats = _args7.length > 3 && _args7[3] !== undefined ? _args7[3] : 1;
374
+ invocationOrder = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : 0;
375
+ countOfWorkers = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : 1;
376
+ testRepeats = _args6.length > 3 && _args6[3] !== undefined ? _args6[3] : 1;
485
377
  resultOrder = [];
486
378
  orderingFunction = orderingFunctions.get(invocationOrder);
487
379
  if (!(orderingFunction !== undefined)) {
488
- _context7.next = 9;
380
+ _context6.next = 9;
489
381
  break;
490
382
  }
491
383
  resultOrder = orderingFunction(tests, countOfWorkers, testRepeats);
492
- _context7.next = 10;
384
+ _context6.next = 10;
493
385
  break;
494
386
  case 9:
495
387
  throw new Error("Cannot find ordering function");
496
388
  case 10:
497
- return _context7.abrupt("return", resultOrder);
389
+ return _context6.abrupt("return", resultOrder);
498
390
  case 11:
499
391
  case "end":
500
- return _context7.stop();
392
+ return _context6.stop();
501
393
  }
502
- }, _callee6);
394
+ }, _callee5);
503
395
  }));
504
396
  return _setWorkersOrder.apply(this, arguments);
505
397
  }
506
- function runTests(_x11, _x12) {
398
+ function runTests(_x6, _x7) {
507
399
  return _runTests.apply(this, arguments);
508
400
  }
509
401
  function _runTests() {
510
- _runTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(workersOrder, workerOptions) {
511
- var workersCommands, _iterator7, _step7, workerOrder, workersPromises, _i, _workersCommands, workerCommands, resultObjects;
512
- return _regenerator["default"].wrap(function _callee7$(_context8) {
513
- while (1) switch (_context8.prev = _context8.next) {
402
+ _runTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(workersOrder, workerOptions) {
403
+ var workersCommands, _iterator5, _step5, workerOrder, workersPromises, _i, _workersCommands, workerCommands, resultObjects;
404
+ return _regenerator["default"].wrap(function _callee6$(_context7) {
405
+ while (1) switch (_context7.prev = _context7.next) {
514
406
  case 0:
515
407
  workersCommands = [];
516
- _iterator7 = _createForOfIteratorHelper(workersOrder);
408
+ _iterator5 = _createForOfIteratorHelper(workersOrder);
517
409
  try {
518
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
519
- workerOrder = _step7.value;
410
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
411
+ workerOrder = _step5.value;
520
412
  workersCommands.push(workerOrder.map(function (testObj) {
521
413
  return {
522
414
  "package": testObj.packageName,
@@ -532,59 +424,59 @@ function _runTests() {
532
424
  }));
533
425
  }
534
426
  } catch (err) {
535
- _iterator7.e(err);
427
+ _iterator5.e(err);
536
428
  } finally {
537
- _iterator7.f();
429
+ _iterator5.f();
538
430
  }
539
431
  workersPromises = [];
540
432
  _i = 0, _workersCommands = workersCommands;
541
433
  case 5:
542
434
  if (!(_i < _workersCommands.length)) {
543
- _context8.next = 13;
435
+ _context7.next = 13;
544
436
  break;
545
437
  }
546
438
  workerCommands = _workersCommands[_i];
547
439
  workersPromises.push(runWorker(workerCommands, workerOptions));
548
- _context8.next = 10;
440
+ _context7.next = 10;
549
441
  return workersPromises[workersPromises.length];
550
442
  case 10:
551
443
  _i++;
552
- _context8.next = 5;
444
+ _context7.next = 5;
553
445
  break;
554
446
  case 13:
555
- _context8.next = 15;
447
+ _context7.next = 15;
556
448
  return Promise.all(workersPromises);
557
449
  case 15:
558
- resultObjects = _context8.sent;
559
- return _context8.abrupt("return", resultObjects);
450
+ resultObjects = _context7.sent;
451
+ return _context7.abrupt("return", resultObjects);
560
452
  case 17:
561
453
  case "end":
562
- return _context8.stop();
454
+ return _context7.stop();
563
455
  }
564
- }, _callee7);
456
+ }, _callee6);
565
457
  }));
566
458
  return _runTests.apply(this, arguments);
567
459
  }
568
- function runWorker(_x13, _x14) {
460
+ function runWorker(_x8, _x9) {
569
461
  return _runWorker.apply(this, arguments);
570
462
  }
571
463
  function _runWorker() {
572
- _runWorker = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(testExecutionData, workerOptions) {
573
- return _regenerator["default"].wrap(function _callee9$(_context10) {
574
- while (1) switch (_context10.prev = _context10.next) {
464
+ _runWorker = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(testExecutionData, workerOptions) {
465
+ return _regenerator["default"].wrap(function _callee8$(_context9) {
466
+ while (1) switch (_context9.prev = _context9.next) {
575
467
  case 0:
576
- _context10.next = 2;
577
- return testUtils.timeout( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
468
+ _context9.next = 2;
469
+ return testUtils.timeout( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
578
470
  var params, out, browser, page, recorder, currentWorkerNum, logsDir, recordDir, testingResults;
579
- return _regenerator["default"].wrap(function _callee8$(_context9) {
580
- while (1) switch (_context9.prev = _context9.next) {
471
+ return _regenerator["default"].wrap(function _callee7$(_context8) {
472
+ while (1) switch (_context8.prev = _context8.next) {
581
473
  case 0:
582
474
  params = Object.assign({}, testUtils.defaultLaunchParameters);
583
475
  if (workerOptions.gui) params['headless'] = false;
584
- _context9.next = 4;
476
+ _context8.next = 4;
585
477
  return testUtils.getBrowserPage(_puppeteer["default"], params);
586
478
  case 4:
587
- out = _context9.sent;
479
+ out = _context8.sent;
588
480
  browser = out.browser;
589
481
  page = out.page;
590
482
  recorder = new _puppeteerScreenRecorder.PuppeteerScreenRecorder(page, testUtils.recorderConfig);
@@ -592,13 +484,13 @@ function _runWorker() {
592
484
  logsDir = "./test-console-output-".concat(currentWorkerNum, ".log");
593
485
  recordDir = "./test-record-".concat(currentWorkerNum, ".mp4");
594
486
  if (!workerOptions.record) {
595
- _context9.next = 20;
487
+ _context8.next = 20;
596
488
  break;
597
489
  }
598
- _context9.next = 14;
490
+ _context8.next = 14;
599
491
  return recorder.start(recordDir);
600
492
  case 14:
601
- _context9.next = 16;
493
+ _context8.next = 16;
602
494
  return page.exposeFunction("addLogsToFile", addLogsToFile);
603
495
  case 16:
604
496
  _fs["default"].writeFileSync(logsDir, "");
@@ -612,7 +504,7 @@ function _runWorker() {
612
504
  addLogsToFile(logsDir, "CONSOLE LOG REQUEST: ".concat(response.status(), ", ").concat(response.url(), "\n"));
613
505
  });
614
506
  case 20:
615
- _context9.next = 22;
507
+ _context8.next = 22;
616
508
  return page.evaluate(function (testData, options) {
617
509
  if (options.benchmark) window.DG.Test.isInBenchmark = true;
618
510
  return new Promise(function (resolve, reject) {
@@ -626,41 +518,43 @@ function _runWorker() {
626
518
  verboseFailed: "Tests execution failed",
627
519
  passedAmount: 0,
628
520
  skippedAmount: 0,
629
- failedAmount: 1
521
+ failedAmount: 1,
522
+ csv: "",
523
+ df: undefined
630
524
  });
631
525
  });
632
526
  });
633
527
  }, testExecutionData, workerOptions);
634
528
  case 22:
635
- testingResults = _context9.sent;
529
+ testingResults = _context8.sent;
636
530
  if (!workerOptions.record) {
637
- _context9.next = 26;
531
+ _context8.next = 26;
638
532
  break;
639
533
  }
640
- _context9.next = 26;
534
+ _context8.next = 26;
641
535
  return recorder.stop();
642
536
  case 26:
643
537
  if (!(browser != null)) {
644
- _context9.next = 29;
538
+ _context8.next = 29;
645
539
  break;
646
540
  }
647
- _context9.next = 29;
541
+ _context8.next = 29;
648
542
  return browser.close();
649
543
  case 29:
650
- return _context9.abrupt("return", testingResults);
544
+ return _context8.abrupt("return", testingResults);
651
545
  case 30:
652
546
  case "end":
653
- return _context9.stop();
547
+ return _context8.stop();
654
548
  }
655
- }, _callee8);
549
+ }, _callee7);
656
550
  })), testInvocationTimeout);
657
551
  case 2:
658
- return _context10.abrupt("return", _context10.sent);
552
+ return _context9.abrupt("return", _context9.sent);
659
553
  case 3:
660
554
  case "end":
661
- return _context10.stop();
555
+ return _context9.stop();
662
556
  }
663
- }, _callee9);
557
+ }, _callee8);
664
558
  }));
665
559
  return _runWorker.apply(this, arguments);
666
560
  }
@@ -668,27 +562,37 @@ function addLogsToFile(filePath, stringToSave) {
668
562
  _fs["default"].appendFileSync(filePath, "".concat(stringToSave));
669
563
  }
670
564
  function printWorkersResult(workerResult) {
565
+ var _workerResult$failedA, _workerResult$verbose3;
671
566
  var verbose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
672
567
  if (verbose) {
673
- if (workerResult.passedAmount > 0 && workerResult.verbosePassed.length > 0) {
568
+ var _workerResult$passedA, _workerResult$verbose, _workerResult$skipped, _workerResult$verbose2;
569
+ 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) {
674
570
  console.log("Passed: ");
675
571
  console.log(workerResult.verbosePassed);
676
572
  }
677
- if (workerResult.skippedAmount > 0 && workerResult.verboseSkipped.length > 0) {
573
+ 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) {
678
574
  console.log("Skipped: ");
679
575
  console.log(workerResult.verboseSkipped);
680
576
  }
681
577
  }
682
- if (workerResult.failedAmount > 0 && workerResult.verboseFailed.length > 0) {
578
+ 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) {
683
579
  console.log("Failed: ");
684
580
  console.log(workerResult.verboseFailed);
685
581
  }
686
- console.log("Passed amount: " + workerResult.passedAmount);
687
- console.log("Skipped amount: " + workerResult.skippedAmount);
688
- console.log("Failed amount: " + workerResult.failedAmount);
582
+ console.log("Passed amount: " + (workerResult === null || workerResult === void 0 ? void 0 : workerResult.passedAmount));
583
+ console.log("Skipped amount: " + (workerResult === null || workerResult === void 0 ? void 0 : workerResult.skippedAmount));
584
+ console.log("Failed amount: " + (workerResult === null || workerResult === void 0 ? void 0 : workerResult.failedAmount));
689
585
  if (workerResult.failed) {
690
586
  color.fail('Tests failed.');
691
587
  } else {
692
588
  color.success('Tests passed.');
693
589
  }
590
+ }
591
+ function saveCsvResults(stringToSave) {
592
+ var modifiedStrings = stringToSave.map(function (str, index) {
593
+ if (index === 0) return str;
594
+ return str.split('\n').slice(1).join('\n');
595
+ });
596
+ _fs["default"].writeFileSync(csvReportDir, modifiedStrings.join('\n'), 'utf8');
597
+ color.info('Saved `test-report.csv`\n');
694
598
  }
@@ -11,10 +11,12 @@ exports.getBrowserPage = getBrowserPage;
11
11
  exports.getDevKey = getDevKey;
12
12
  exports.getToken = getToken;
13
13
  exports.getWebUrl = getWebUrl;
14
+ exports.loadPackages = loadPackages;
14
15
  exports.recorderConfig = void 0;
15
16
  exports.runWithTimeout = runWithTimeout;
16
17
  exports.timeout = timeout;
17
18
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
19
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
21
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
20
22
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -23,9 +25,13 @@ var _fs = _interopRequireDefault(require("fs"));
23
25
  var _os = _interopRequireDefault(require("os"));
24
26
  var _path = _interopRequireDefault(require("path"));
25
27
  var _jsYaml = _interopRequireDefault(require("js-yaml"));
26
- var utils = _interopRequireWildcard(require("../utils/utils"));
28
+ var _utils = _interopRequireWildcard(require("../utils/utils"));
29
+ var utils = _utils;
27
30
  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); }
28
31
  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; }
32
+ 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; } } }; }
33
+ 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); }
34
+ 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; }
29
35
  var fetch = require('node-fetch');
30
36
  var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
31
37
  var confPath = _path["default"].join(grokDir, 'config.yaml');
@@ -308,4 +314,125 @@ var recorderConfig = exports.recorderConfig = {
308
314
  color: 'black'
309
315
  }
310
316
  // aspectRatio: '16:9',
311
- };
317
+ };
318
+ function loadPackages(_x10, _x11, _x12, _x13, _x14, _x15) {
319
+ return _loadPackages.apply(this, arguments);
320
+ }
321
+ function _loadPackages() {
322
+ _loadPackages = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(packagesDir, packagesToLoad, host, skipPublish, skipBuild, linkPackage) {
323
+ var packagesToRun, hostString, _iterator, _step, pacakgeName, _iterator2, _step2, dirName, packageDir, _spaceToCamelCase$toL, _packageJsonData$frie, packageJsonData, packageFriendlyName;
324
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
325
+ while (1) switch (_context6.prev = _context6.next) {
326
+ case 0:
327
+ packagesToRun = new Map();
328
+ hostString = host === undefined ? "" : "".concat(host);
329
+ if (packagesToLoad !== "all") {
330
+ _iterator = _createForOfIteratorHelper((packagesToLoad !== null && packagesToLoad !== void 0 ? packagesToLoad : "").split(' '));
331
+ try {
332
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
333
+ pacakgeName = _step.value;
334
+ packagesToRun.set((0, _utils.spaceToCamelCase)(pacakgeName).toLocaleLowerCase(), false);
335
+ }
336
+ } catch (err) {
337
+ _iterator.e(err);
338
+ } finally {
339
+ _iterator.f();
340
+ }
341
+ }
342
+ _iterator2 = _createForOfIteratorHelper(_fs["default"].readdirSync(packagesDir));
343
+ _context6.prev = 4;
344
+ _iterator2.s();
345
+ case 6:
346
+ if ((_step2 = _iterator2.n()).done) {
347
+ _context6.next = 40;
348
+ break;
349
+ }
350
+ dirName = _step2.value;
351
+ packageDir = _path["default"].join(packagesDir, dirName);
352
+ if (_fs["default"].lstatSync(packageDir).isFile()) {
353
+ _context6.next = 38;
354
+ break;
355
+ }
356
+ _context6.prev = 10;
357
+ packageJsonData = JSON.parse(_fs["default"].readFileSync(_path["default"].join(packageDir, 'package.json'), {
358
+ encoding: 'utf-8'
359
+ }));
360
+ packageFriendlyName = packagesToRun.get((_spaceToCamelCase$toL = (0, _utils.spaceToCamelCase)((_packageJsonData$frie = packageJsonData["friendlyName"]) !== null && _packageJsonData$frie !== void 0 ? _packageJsonData$frie : packageJsonData["name"].split("/")[1]).toLocaleLowerCase()) !== null && _spaceToCamelCase$toL !== void 0 ? _spaceToCamelCase$toL : "");
361
+ if (!(utils.isPackageDir(packageDir) && (packageFriendlyName !== undefined || packagesToLoad === "all"))) {
362
+ _context6.next = 33;
363
+ break;
364
+ }
365
+ _context6.prev = 14;
366
+ if (!(skipPublish != true)) {
367
+ _context6.next = 26;
368
+ break;
369
+ }
370
+ _context6.next = 18;
371
+ return utils.runScript("npm install", packageDir);
372
+ case 18:
373
+ if (!linkPackage) {
374
+ _context6.next = 21;
375
+ break;
376
+ }
377
+ _context6.next = 21;
378
+ return utils.runScript("grok link", packageDir);
379
+ case 21:
380
+ if (!(skipBuild != true)) {
381
+ _context6.next = 24;
382
+ break;
383
+ }
384
+ _context6.next = 24;
385
+ return utils.runScript("npm run build", packageDir);
386
+ case 24:
387
+ _context6.next = 26;
388
+ return utils.runScript("grok publish ".concat(hostString), packageDir);
389
+ case 26:
390
+ packagesToRun.set(dirName, true);
391
+ console.log("Package published ".concat(dirName));
392
+ _context6.next = 33;
393
+ break;
394
+ case 30:
395
+ _context6.prev = 30;
396
+ _context6.t0 = _context6["catch"](14);
397
+ console.log("Package didnt publishded ".concat(dirName));
398
+ case 33:
399
+ _context6.next = 38;
400
+ break;
401
+ case 35:
402
+ _context6.prev = 35;
403
+ _context6.t1 = _context6["catch"](10);
404
+ if (utils.isPackageDir(packageDir) && (packagesToRun.get((0, _utils.spaceToCamelCase)(dirName).toLocaleLowerCase()) !== undefined || packagesToLoad === "all")) console.log("Couldnt read package.json ".concat(dirName));
405
+ case 38:
406
+ _context6.next = 6;
407
+ break;
408
+ case 40:
409
+ _context6.next = 45;
410
+ break;
411
+ case 42:
412
+ _context6.prev = 42;
413
+ _context6.t2 = _context6["catch"](4);
414
+ _iterator2.e(_context6.t2);
415
+ case 45:
416
+ _context6.prev = 45;
417
+ _iterator2.f();
418
+ return _context6.finish(45);
419
+ case 48:
420
+ console.log();
421
+ return _context6.abrupt("return", Array.from(packagesToRun).filter(function (_ref2) {
422
+ var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
423
+ key = _ref3[0],
424
+ value = _ref3[1];
425
+ return value === true;
426
+ }).map(function (_ref4) {
427
+ var _ref5 = (0, _slicedToArray2["default"])(_ref4, 1),
428
+ key = _ref5[0];
429
+ return key;
430
+ }));
431
+ case 51:
432
+ case "end":
433
+ return _context6.stop();
434
+ }
435
+ }, _callee6, null, [[4, 42, 45, 48], [10, 35], [14, 30]]);
436
+ }));
437
+ return _loadPackages.apply(this, arguments);
438
+ }
@@ -25,6 +25,7 @@ exports.removeScope = removeScope;
25
25
  exports.replacers = void 0;
26
26
  exports.runScript = runScript;
27
27
  exports.scriptWrapperTemplate = exports.scriptLangExtMap = exports.scriptExtensions = void 0;
28
+ exports.setHost = setHost;
28
29
  exports.spaceToCamelCase = spaceToCamelCase;
29
30
  exports.wordsToCamelCase = wordsToCamelCase;
30
31
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
@@ -330,4 +331,18 @@ function _runScript() {
330
331
  }, _callee2, null, [[1, 11]]);
331
332
  }));
332
333
  return _runScript.apply(this, arguments);
334
+ }
335
+ function setHost(host, configFile) {
336
+ if (host) {
337
+ if (host in configFile.servers) {
338
+ process.env.HOST = host;
339
+ console.log('Environment variable `HOST` is set to', host);
340
+ } else {
341
+ console.error("Unknown server alias. Please add it to Config File");
342
+ return false;
343
+ }
344
+ } else if (configFile["default"]) {
345
+ process.env.HOST = configFile["default"];
346
+ console.log('Environment variable `HOST` is set to', configFile["default"]);
347
+ }
333
348
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datagrok-tools",
3
- "version": "4.13.22",
3
+ "version": "4.13.23",
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": {