datagrok-tools 4.14.63 → 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.
- package/bin/commands/test-all.js +4 -1
- package/bin/utils/test-utils.js +27 -9
- package/package.json +1 -1
package/bin/commands/test-all.js
CHANGED
|
@@ -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
|
-
|
|
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, {
|
package/bin/utils/test-utils.js
CHANGED
|
@@ -184,10 +184,10 @@ const recorderConfig = exports.recorderConfig = {
|
|
|
184
184
|
async function loadPackages(packagesDir, packagesToLoad, host, skipPublish, skipBuild, linkPackage, release) {
|
|
185
185
|
const packagesToRun = new Map();
|
|
186
186
|
const hostString = host === undefined ? `` : `${host}`;
|
|
187
|
-
if (packagesToLoad !== 'all') {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
187
|
+
if (packagesToLoad && packagesToLoad !== 'all') {
|
|
188
|
+
const packageNames = packagesToLoad.split(' ').map(p => p.trim()).filter(p => p.length > 0);
|
|
189
|
+
if (skipPublish && skipBuild && !linkPackage) return packageNames;
|
|
190
|
+
for (const name of packageNames) packagesToRun.set((0, _utils.spaceToCamelCase)(name).toLowerCase(), false);
|
|
191
191
|
}
|
|
192
192
|
for (const dirName of _fs.default.readdirSync(packagesDir)) {
|
|
193
193
|
const packageDir = _path.default.join(packagesDir, dirName);
|
|
@@ -218,16 +218,33 @@ async function loadPackages(packagesDir, packagesToLoad, host, skipPublish, skip
|
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
220
|
console.log();
|
|
221
|
-
return Array.from(packagesToRun).filter(([
|
|
222
|
-
;
|
|
221
|
+
return Array.from(packagesToRun).filter(([_, value]) => value).map(([key, _]) => key);
|
|
223
222
|
}
|
|
224
|
-
async function loadTestsList(packages, core = false) {
|
|
223
|
+
async function loadTestsList(packages, core = false, record = false) {
|
|
225
224
|
const packageTestsData = await timeout(async () => {
|
|
226
225
|
const params = Object.assign({}, defaultLaunchParameters);
|
|
227
|
-
// params['headless'] = false;
|
|
228
226
|
const out = await getBrowserPage(_puppeteer.default, params);
|
|
229
227
|
const browser = out.browser;
|
|
230
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
|
+
}
|
|
231
248
|
const r = await page.evaluate((packages, coreTests) => {
|
|
232
249
|
return new Promise((resolve, reject) => {
|
|
233
250
|
const promises = [];
|
|
@@ -268,7 +285,8 @@ async function loadTestsList(packages, core = false) {
|
|
|
268
285
|
});
|
|
269
286
|
});
|
|
270
287
|
}, packages, core);
|
|
271
|
-
|
|
288
|
+
await recorder?.stop();
|
|
289
|
+
await browser?.close();
|
|
272
290
|
return r;
|
|
273
291
|
}, testCollectionTimeout);
|
|
274
292
|
const testsList = [];
|
package/package.json
CHANGED