datagrok-tools 4.14.64 → 4.14.65

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.
@@ -60,7 +60,10 @@ async function testAll(args) {
60
60
  }));
61
61
  utils.setHost(args.host, config);
62
62
  let packagesToRun = await testUtils.loadPackages(curDir, args.packages, args.host, args['skip-publish'], args['skip-build']);
63
- let testsObj = await (0, _testUtils.loadTestsList)(packagesToRun, args.core);
63
+ console.log('Loading tests');
64
+ let start = Date.now();
65
+ let testsObj = await (0, _testUtils.loadTestsList)(packagesToRun, args.core ?? false, args.record ?? false);
66
+ console.log(`Loaded tests in ${Date.now() - start} ms`);
64
67
  let filteredTests = await filterTests(testsObj, (args.tags ?? "").split(" "), args['stress-test'], args.benchmark);
65
68
  let browsersOrder = await setBrowsersOrder(filteredTests, getEnumOrder(args.order ?? ''), args['browsers-count'], args.testRepeat);
66
69
  let testsResults = await runTests(browsersOrder, {
@@ -220,13 +220,31 @@ async function loadPackages(packagesDir, packagesToLoad, host, skipPublish, skip
220
220
  console.log();
221
221
  return Array.from(packagesToRun).filter(([_, value]) => value).map(([key, _]) => key);
222
222
  }
223
- async function loadTestsList(packages, core = false) {
223
+ async function loadTestsList(packages, core = false, record = false) {
224
224
  const packageTestsData = await timeout(async () => {
225
225
  const params = Object.assign({}, defaultLaunchParameters);
226
- // params['headless'] = false;
227
226
  const out = await getBrowserPage(_puppeteer.default, params);
228
227
  const browser = out.browser;
229
228
  const page = out.page;
229
+ let recorder = null;
230
+ if (record) {
231
+ const suffix = process.env.BACKUP_SIZE && process.env.WORKER_ID && process.env.TOTAL_WORKERS ? `_${process.env.BACKUP_SIZE}_${process.env.WORKER_ID}_${process.env.TOTAL_WORKERS}` : '';
232
+ const logsDir = `./load-test-console-output${suffix}.log`;
233
+ const recordDir = `./load-test-record${suffix}.mp4`;
234
+ recorder = new _puppeteerScreenRecorder.PuppeteerScreenRecorder(page, recorderConfig);
235
+ await recorder.start(recordDir);
236
+ await page.exposeFunction('addLogsToFile', addLogsToFile);
237
+ _fs.default.writeFileSync(logsDir, ``);
238
+ page.on('console', msg => {
239
+ addLogsToFile(logsDir, `CONSOLE LOG ENTRY: ${msg.text()}\n`);
240
+ });
241
+ page.on('pageerror', error => {
242
+ addLogsToFile(logsDir, `CONSOLE LOG ERROR: ${error.message}\n`);
243
+ });
244
+ page.on('response', response => {
245
+ addLogsToFile(logsDir, `CONSOLE LOG REQUEST: ${response.status()}, ${response.url()}\n`);
246
+ });
247
+ }
230
248
  const r = await page.evaluate((packages, coreTests) => {
231
249
  return new Promise((resolve, reject) => {
232
250
  const promises = [];
@@ -267,7 +285,8 @@ async function loadTestsList(packages, core = false) {
267
285
  });
268
286
  });
269
287
  }, packages, core);
270
- if (browser != null) await browser.close();
288
+ await recorder?.stop();
289
+ await browser?.close();
271
290
  return r;
272
291
  }, testCollectionTimeout);
273
292
  const testsList = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datagrok-tools",
3
- "version": "4.14.64",
3
+ "version": "4.14.65",
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": {
@@ -31,8 +31,7 @@
31
31
  "link": "npm link",
32
32
  "prepublishOnly": "babel bin --extensions .ts -d bin",
33
33
  "babel": "babel bin --extensions .ts -d bin",
34
- "build": "babel bin --extensions .ts -d bin",
35
- "debug-source-map": "babel bin --extensions .ts -d bin --source-maps true"
34
+ "build": "babel bin --extensions .ts -d bin"
36
35
  },
37
36
  "bin": {
38
37
  "datagrok-upload": "./bin/_deprecated/upload.js",