datagrok-tools 4.13.75 → 4.13.77

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.
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.testAll = testAll;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
8
  var _fs = _interopRequireDefault(require("fs"));
12
9
  var _os = _interopRequireDefault(require("os"));
13
10
  var _path = _interopRequireDefault(require("path"));
@@ -16,11 +13,9 @@ var utils = _interopRequireWildcard(require("../utils/utils"));
16
13
  var _testUtils = _interopRequireWildcard(require("../utils/test-utils"));
17
14
  var testUtils = _testUtils;
18
15
  var _orderFunctions = require("../utils/order-functions");
19
- 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
- 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
- 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; } } }; }
22
- 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); }
23
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /* eslint-disable max-len */
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ 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; }
18
+ /* eslint-disable max-len */
24
19
  var order = /*#__PURE__*/function (order) {
25
20
  order[order["random"] = 0] = "random";
26
21
  order[order["alphabetical"] = 1] = "alphabetical";
@@ -53,292 +48,83 @@ function getEnumOrder(orderStr) {
53
48
  }
54
49
  return order.random;
55
50
  }
56
- var curDir = process.cwd();
57
- var grokDir = _path["default"].join(_os["default"].homedir(), '.grok');
58
- var confPath = _path["default"].join(grokDir, 'config.yaml');
59
- var csvReportDir = _path["default"].join(curDir, 'test-report.csv');
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.testToBrowser, _orderFunctions.setTestToBrowserOrder]]);
62
- var browsersStarted = 0;
63
- function testAll(_x) {
64
- return _testAll.apply(this, arguments);
65
- }
66
- function _testAll() {
67
- _testAll = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(args) {
68
- var _args$tags, _args$order, _args$benchmark, _args$stressTest, _args$catchUnhandled, _args$gui, _args$record, _args$report, _args$verbose, _args$debug;
69
- var config, packagesToRun, testsObj, filteredTests, browsersOrder, testsResults, i, _iterator, _step, result;
70
- return _regenerator["default"].wrap(function _callee$(_context) {
71
- while (1) switch (_context.prev = _context.next) {
72
- case 0:
73
- config = _jsYaml["default"].load(_fs["default"].readFileSync(confPath, {
74
- encoding: 'utf-8'
75
- }));
76
- utils.setHost(args.host, config);
77
- _context.next = 4;
78
- return testUtils.loadPackages(curDir, args.packages, args.host, args['skip-publish'], args['skip-build']);
79
- case 4:
80
- packagesToRun = _context.sent;
81
- _context.next = 7;
82
- return (0, _testUtils.loadTestsList)(packagesToRun, args.core);
83
- case 7:
84
- testsObj = _context.sent;
85
- _context.next = 10;
86
- return filterTests(testsObj, ((_args$tags = args.tags) !== null && _args$tags !== void 0 ? _args$tags : "").split(" "), args['stress-test'], args.benchmark);
87
- case 10:
88
- filteredTests = _context.sent;
89
- _context.next = 13;
90
- return setBrowsersOrder(filteredTests, getEnumOrder((_args$order = args.order) !== null && _args$order !== void 0 ? _args$order : ''), args['browsers-count'], args.testRepeat);
91
- case 13:
92
- browsersOrder = _context.sent;
93
- _context.next = 16;
94
- return runTests(browsersOrder, {
95
- benchmark: (_args$benchmark = args.benchmark) !== null && _args$benchmark !== void 0 ? _args$benchmark : false,
96
- stressTest: (_args$stressTest = args['stress-test']) !== null && _args$stressTest !== void 0 ? _args$stressTest : false,
97
- catchUnhandled: (_args$catchUnhandled = args.catchUnhandled) !== null && _args$catchUnhandled !== void 0 ? _args$catchUnhandled : false,
98
- gui: (_args$gui = args.gui) !== null && _args$gui !== void 0 ? _args$gui : false,
99
- record: (_args$record = args.record) !== null && _args$record !== void 0 ? _args$record : false,
100
- report: (_args$report = args.report) !== null && _args$report !== void 0 ? _args$report : false,
101
- verbose: (_args$verbose = args.verbose) !== null && _args$verbose !== void 0 ? _args$verbose : false,
102
- debug: (_args$debug = args['debug']) !== null && _args$debug !== void 0 ? _args$debug : false
103
- });
104
- case 16:
105
- testsResults = _context.sent;
106
- i = 0;
107
- _iterator = _createForOfIteratorHelper(testsResults);
108
- try {
109
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
110
- result = _step.value;
111
- console.log("\nBrowser #".concat(i++, " "));
112
- (0, _testUtils.printBrowsersResult)(result, args.verbose);
113
- }
114
- } catch (err) {
115
- _iterator.e(err);
116
- } finally {
117
- _iterator.f();
118
- }
119
- if (args.csv) {
120
- (0, _testUtils.saveCsvResults)(testsResults.map(function (result) {
121
- return result.csv;
122
- }), csvReportDir);
123
- }
124
- return _context.abrupt("return", !testsResults.map(function (test) {
125
- return test.failed;
126
- }).some(function (failStatus) {
127
- return failStatus === true;
128
- }));
129
- case 22:
130
- case "end":
131
- return _context.stop();
132
- }
133
- }, _callee);
134
- }));
135
- return _testAll.apply(this, arguments);
136
- }
137
- function filterTests(_x2, _x3) {
138
- return _filterTests.apply(this, arguments);
139
- }
140
- function _filterTests() {
141
- _filterTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(tests, tags) {
142
- var stressTest,
143
- benchmark,
144
- filteredTests,
145
- stressTestValue,
146
- benchmarkValue,
147
- _iterator2,
148
- _step2,
149
- _loop,
150
- _ret,
151
- _args3 = arguments;
152
- return _regenerator["default"].wrap(function _callee2$(_context3) {
153
- while (1) switch (_context3.prev = _context3.next) {
154
- case 0:
155
- stressTest = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : false;
156
- benchmark = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : false;
157
- filteredTests = [];
158
- stressTestValue = tags.includes("stress-test") || stressTest;
159
- benchmarkValue = benchmark;
160
- tags = tags.filter(function (tag) {
161
- return tag !== "stress-test" && tag != "";
162
- });
163
- _iterator2 = _createForOfIteratorHelper(tests);
164
- _context3.prev = 7;
165
- _loop = /*#__PURE__*/_regenerator["default"].mark(function _loop() {
166
- var _test$options, _test$options2, _test$options3, _tags;
167
- var test, hasMatchingTags;
168
- return _regenerator["default"].wrap(function _loop$(_context2) {
169
- while (1) switch (_context2.prev = _context2.next) {
170
- case 0:
171
- test = _step2.value;
172
- if (!(benchmarkValue && ((_test$options = test.options) === null || _test$options === void 0 ? void 0 : _test$options.benchmark) !== true)) {
173
- _context2.next = 3;
174
- break;
175
- }
176
- return _context2.abrupt("return", 0);
177
- case 3:
178
- 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")))) {
179
- _context2.next = 5;
180
- break;
181
- }
182
- return _context2.abrupt("return", 0);
183
- case 5:
184
- hasMatchingTags = tags.some(function (tag) {
185
- var _test$options4;
186
- return (_test$options4 = test.options) === null || _test$options4 === void 0 || (_test$options4 = _test$options4.tags) === null || _test$options4 === void 0 ? void 0 : _test$options4.includes(tag);
187
- });
188
- if (hasMatchingTags || ((_tags = tags) === null || _tags === void 0 ? void 0 : _tags.length) === 0) filteredTests.push(test);
189
- case 7:
190
- case "end":
191
- return _context2.stop();
192
- }
193
- }, _loop);
194
- });
195
- _iterator2.s();
196
- case 10:
197
- if ((_step2 = _iterator2.n()).done) {
198
- _context3.next = 17;
199
- break;
200
- }
201
- return _context3.delegateYield(_loop(), "t0", 12);
202
- case 12:
203
- _ret = _context3.t0;
204
- if (!(_ret === 0)) {
205
- _context3.next = 15;
206
- break;
207
- }
208
- return _context3.abrupt("continue", 15);
209
- case 15:
210
- _context3.next = 10;
211
- break;
212
- case 17:
213
- _context3.next = 22;
214
- break;
215
- case 19:
216
- _context3.prev = 19;
217
- _context3.t1 = _context3["catch"](7);
218
- _iterator2.e(_context3.t1);
219
- case 22:
220
- _context3.prev = 22;
221
- _iterator2.f();
222
- return _context3.finish(22);
223
- case 25:
224
- return _context3.abrupt("return", filteredTests);
225
- case 26:
226
- case "end":
227
- return _context3.stop();
228
- }
229
- }, _callee2, null, [[7, 19, 22, 25]]);
51
+ const curDir = process.cwd();
52
+ const grokDir = _path.default.join(_os.default.homedir(), '.grok');
53
+ const confPath = _path.default.join(grokDir, 'config.yaml');
54
+ const csvReportDir = _path.default.join(curDir, 'test-report.csv');
55
+ const testInvocationTimeout = 7200000;
56
+ const orderingFunctions = new Map([[order.random, _orderFunctions.setRandomOrder], [order.alphabetical, _orderFunctions.setAlphabeticalOrder], [order.packageRandom, _orderFunctions.setPackageRandomOrder], [order.packageAlphabetical, _orderFunctions.setPackageAlphabeticalOrder], [order.testToBrowser, _orderFunctions.setTestToBrowserOrder]]);
57
+ let browsersStarted = 0;
58
+ async function testAll(args) {
59
+ const config = _jsYaml.default.load(_fs.default.readFileSync(confPath, {
60
+ encoding: 'utf-8'
230
61
  }));
231
- return _filterTests.apply(this, arguments);
232
- }
233
- function setBrowsersOrder(_x4) {
234
- return _setBrowsersOrder.apply(this, arguments);
62
+ utils.setHost(args.host, config);
63
+ let packagesToRun = await testUtils.loadPackages(curDir, args.packages, args.host, args['skip-publish'], args['skip-build']);
64
+ let testsObj = await (0, _testUtils.loadTestsList)(packagesToRun, args.core);
65
+ let filteredTests = await filterTests(testsObj, (args.tags ?? "").split(" "), args['stress-test'], args.benchmark);
66
+ let browsersOrder = await setBrowsersOrder(filteredTests, getEnumOrder(args.order ?? ''), args['browsers-count'], args.testRepeat);
67
+ let testsResults = await runTests(browsersOrder, {
68
+ benchmark: args.benchmark ?? false,
69
+ stressTest: args['stress-test'] ?? false,
70
+ catchUnhandled: args.catchUnhandled ?? false,
71
+ gui: args.gui ?? false,
72
+ record: args.record ?? false,
73
+ report: args.report ?? false,
74
+ verbose: args.verbose ?? false,
75
+ debug: args['debug'] ?? false
76
+ });
77
+ let i = 0;
78
+ for (let result of testsResults) {
79
+ console.log(`\nBrowser #${i++} `);
80
+ (0, _testUtils.printBrowsersResult)(result, args.verbose);
81
+ }
82
+ if (args.csv) {
83
+ (0, _testUtils.saveCsvResults)(testsResults.map(result => result.csv), csvReportDir);
84
+ }
85
+ return !testsResults.map(test => test.failed).some(failStatus => failStatus === true);
235
86
  }
236
- function _setBrowsersOrder() {
237
- _setBrowsersOrder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(tests) {
238
- var invocationOrder,
239
- countOfBrowsers,
240
- testRepeats,
241
- resultOrder,
242
- orderingFunction,
243
- _args4 = arguments;
244
- return _regenerator["default"].wrap(function _callee3$(_context4) {
245
- while (1) switch (_context4.prev = _context4.next) {
246
- case 0:
247
- invocationOrder = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : 0;
248
- countOfBrowsers = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : 1;
249
- testRepeats = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : 1;
250
- resultOrder = [];
251
- orderingFunction = orderingFunctions.get(invocationOrder);
252
- if (!(orderingFunction !== undefined)) {
253
- _context4.next = 9;
254
- break;
255
- }
256
- resultOrder = orderingFunction(tests, countOfBrowsers, testRepeats);
257
- _context4.next = 10;
258
- break;
259
- case 9:
260
- throw new Error("Cannot find ordering function");
261
- case 10:
262
- return _context4.abrupt("return", resultOrder);
263
- case 11:
264
- case "end":
265
- return _context4.stop();
266
- }
267
- }, _callee3);
268
- }));
269
- return _setBrowsersOrder.apply(this, arguments);
87
+ async function filterTests(tests, tags, stressTest = false, benchmark = false) {
88
+ let filteredTests = [];
89
+ let stressTestValue = tags.includes("stress-test") || stressTest;
90
+ let benchmarkValue = benchmark;
91
+ tags = tags.filter(tag => tag !== "stress-test" && tag != "");
92
+ for (let test of tests) {
93
+ if (benchmarkValue && test.options?.benchmark !== true) continue;
94
+ if (stressTestValue && test.options?.stressTest !== true && !test.options?.tags?.includes("stressTest")) continue;
95
+ const hasMatchingTags = tags.some(tag => test.options?.tags?.includes(tag));
96
+ if (hasMatchingTags || tags?.length === 0) filteredTests.push(test);
97
+ }
98
+ return filteredTests;
270
99
  }
271
- function runTests(_x5, _x6) {
272
- return _runTests.apply(this, arguments);
100
+ async function setBrowsersOrder(tests, invocationOrder = 0, countOfBrowsers = 1, testRepeats = 1) {
101
+ let resultOrder = [];
102
+ let orderingFunction = orderingFunctions.get(invocationOrder);
103
+ if (orderingFunction !== undefined) resultOrder = orderingFunction(tests, countOfBrowsers, testRepeats);else throw new Error("Cannot find ordering function");
104
+ return resultOrder;
273
105
  }
274
- function _runTests() {
275
- _runTests = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(browsersOrder, browserOptions) {
276
- var browsersCommands, _iterator3, _step3, browserOrder, browsersPromises, _i, _browsersCommands, browserCommands, resultObjects, i, _browserOptions$stres, _browserOptions$bench;
277
- return _regenerator["default"].wrap(function _callee4$(_context5) {
278
- while (1) switch (_context5.prev = _context5.next) {
279
- case 0:
280
- browsersCommands = [];
281
- _iterator3 = _createForOfIteratorHelper(browsersOrder);
282
- try {
283
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
284
- browserOrder = _step3.value;
285
- browsersCommands.push(browserOrder.map(function (testObj) {
286
- return {
287
- "package": testObj.packageName,
288
- params: {
289
- category: testObj.category,
290
- test: testObj.name,
291
- options: {
292
- catchUnhandled: browserOptions.catchUnhandled,
293
- report: browserOptions.report
294
- }
295
- }
296
- };
297
- }));
298
- }
299
- } catch (err) {
300
- _iterator3.e(err);
301
- } finally {
302
- _iterator3.f();
303
- }
304
- browsersPromises = [];
305
- for (_i = 0, _browsersCommands = browsersCommands; _i < _browsersCommands.length; _i++) {
306
- browserCommands = _browsersCommands[_i];
307
- browsersPromises.push((0, _testUtils.runBrowser)(browserCommands, browserOptions, browsersStarted++, testInvocationTimeout));
308
- }
309
- _context5.next = 7;
310
- return Promise.all(browsersPromises);
311
- case 7:
312
- resultObjects = _context5.sent;
313
- i = 0;
314
- case 9:
315
- if (!(i < resultObjects.length)) {
316
- _context5.next = 22;
317
- break;
318
- }
319
- _context5.next = 12;
320
- return (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "browser", i);
321
- case 12:
322
- resultObjects[i].csv = _context5.sent;
323
- _context5.next = 15;
324
- return (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "stress_test", (_browserOptions$stres = browserOptions.stressTest) !== null && _browserOptions$stres !== void 0 ? _browserOptions$stres : false);
325
- case 15:
326
- resultObjects[i].csv = _context5.sent;
327
- _context5.next = 18;
328
- return (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "benchmark", (_browserOptions$bench = browserOptions.benchmark) !== null && _browserOptions$bench !== void 0 ? _browserOptions$bench : false);
329
- case 18:
330
- resultObjects[i].csv = _context5.sent;
331
- case 19:
332
- i++;
333
- _context5.next = 9;
334
- break;
335
- case 22:
336
- return _context5.abrupt("return", resultObjects);
337
- case 23:
338
- case "end":
339
- return _context5.stop();
106
+ async function runTests(browsersOrder, browserOptions) {
107
+ let browsersCommands = [];
108
+ for (let browserOrder of browsersOrder) browsersCommands.push(browserOrder.map(testObj => ({
109
+ package: testObj.packageName,
110
+ params: {
111
+ category: testObj.category,
112
+ test: testObj.name,
113
+ options: {
114
+ catchUnhandled: browserOptions.catchUnhandled,
115
+ report: browserOptions.report
340
116
  }
341
- }, _callee4);
342
- }));
343
- return _runTests.apply(this, arguments);
117
+ }
118
+ })));
119
+ let browsersPromises = [];
120
+ for (let browserCommands of browsersCommands) {
121
+ browsersPromises.push((0, _testUtils.runBrowser)(browserCommands, browserOptions, browsersStarted++, testInvocationTimeout));
122
+ }
123
+ let resultObjects = await Promise.all(browsersPromises);
124
+ for (let i = 0; i < resultObjects.length; i++) {
125
+ resultObjects[i].csv = await (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "browser", i);
126
+ resultObjects[i].csv = await (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "stress_test", browserOptions.stressTest ?? false);
127
+ resultObjects[i].csv = await (0, _testUtils.addColumnToCsv)(resultObjects[i].csv, "benchmark", browserOptions.benchmark ?? false);
128
+ }
129
+ return resultObjects;
344
130
  }