testcafe 3.6.2 → 3.7.0-rc.1
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/testcafe-with-v8-flag-filter.js +3 -1
- package/lib/browser/provider/built-in/dedicated/chrome/build-chrome-args.js +3 -2
- package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/utils.js +7 -2
- package/lib/client/automation/index.js +955 -947
- package/lib/client/automation/index.min.js +1 -1
- package/lib/client/browser/idle-page/index.js +20 -20
- package/lib/client/browser/service-worker.js +16 -15
- package/lib/client/core/index.js +244 -241
- package/lib/client/core/index.min.js +1 -1
- package/lib/client/driver/index.js +243 -239
- package/lib/client/driver/index.min.js +1 -1
- package/lib/client/ui/index.js +579 -575
- package/lib/client/ui/index.min.js +1 -1
- package/lib/compiler/babel/load-libs.js +4 -3
- package/lib/compiler/babel/preset-stage-2.js +5 -5
- package/lib/compiler/test-file/api-based.js +6 -1
- package/lib/compiler/test-file/formats/es-next/compiler.js +3 -3
- package/lib/native-automation/request-pipeline/safe-api.js +4 -2
- package/lib/test-run/index.js +5 -3
- package/package.json +11 -13
- package/ts-defs/index.d.ts +8 -2
- package/ts-defs/selectors.d.ts +4 -2
- package/ts-defs/testcafe-scripts.d.ts +4 -2
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
const path = require('path');
|
|
6
6
|
const url = require('url');
|
|
7
7
|
const v8FlagsFilter = require('@devexpress/bin-v8-flags-filter');
|
|
8
|
+
const semver = require('semver');
|
|
8
9
|
|
|
9
10
|
const ESM_OPTION = '--esm';
|
|
10
11
|
|
|
@@ -12,7 +13,8 @@ const forcedArgs = [];
|
|
|
12
13
|
|
|
13
14
|
if (process.argv.slice(2).includes(ESM_OPTION)) {
|
|
14
15
|
forcedArgs.push('--no-warnings');
|
|
15
|
-
|
|
16
|
+
if (!semver.satisfies(process.version, '18.19.0 - 18.x || >=20.8.0'))
|
|
17
|
+
forcedArgs.push(`--experimental-loader=${url.pathToFileURL(path.join(__dirname, '../lib/compiler/esm-loader.js')).href}`);
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
v8FlagsFilter(path.join(__dirname, '../lib/cli'), {
|
|
@@ -4,10 +4,11 @@ exports.buildChromeArgs = exports.CONTAINERIZED_CHROME_FLAGS = void 0;
|
|
|
4
4
|
exports.CONTAINERIZED_CHROME_FLAGS = ['--no-sandbox', '--disable-dev-shm-usage'];
|
|
5
5
|
function buildChromeArgs({ config, cdpPort, platformArgs, tempProfileDir, isContainerized, isNativeAutomation, browserName }) {
|
|
6
6
|
const headlessMode = ['chrome', 'chromium'].includes(browserName) ? '--headless=new' : '--headless';
|
|
7
|
+
const defaultArgs = ['--disable-search-engine-choice-screen'];
|
|
7
8
|
let chromeArgs = []
|
|
8
9
|
.concat(cdpPort ? [`--remote-debugging-port=${cdpPort}`] : [], !config.userProfile ? [`--user-data-dir=${tempProfileDir.path}`] : [], config.headless ? [headlessMode] : [], config.userArgs ? [config.userArgs] : [],
|
|
9
10
|
// NOTE: we need to prevent new window blocking for multiple windows in Native Automation
|
|
10
|
-
isNativeAutomation ? ['--disable-popup-blocking'] : [], platformArgs ? [platformArgs] : [])
|
|
11
|
+
isNativeAutomation ? ['--disable-popup-blocking'] : [], platformArgs ? [platformArgs] : [], defaultArgs)
|
|
11
12
|
.join(' ');
|
|
12
13
|
if (isContainerized) {
|
|
13
14
|
exports.CONTAINERIZED_CHROME_FLAGS.forEach(flag => {
|
|
@@ -18,4 +19,4 @@ function buildChromeArgs({ config, cdpPort, platformArgs, tempProfileDir, isCont
|
|
|
18
19
|
return chromeArgs;
|
|
19
20
|
}
|
|
20
21
|
exports.buildChromeArgs = buildChromeArgs;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY2hyb21lLWFyZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2J1aWxkLWNocm9tZS1hcmdzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMEJBQTBCLEdBQUcsQ0FBQyxjQUFjLEVBQUUseUJBQXlCLENBQUMsQ0FBQztBQUV0RixTQUFnQixlQUFlLENBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRTtJQUNoSSxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDcEcsTUFBTSxXQUFXLEdBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBRS9ELElBQUksVUFBVSxHQUFHLEVBQUU7U0FDZCxNQUFNLENBQ0gsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3JELENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDckUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUN4Qyx5RkFBeUY7SUFDekYsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUN0RCxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDbEMsV0FBVyxDQUNkO1NBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWYsSUFBSSxlQUFlLEVBQUU7UUFDakIsa0NBQTBCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDMUIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0tBQ047SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDO0FBekJELDBDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDT05UQUlORVJJWkVEX0NIUk9NRV9GTEFHUyA9IFsnLS1uby1zYW5kYm94JywgJy0tZGlzYWJsZS1kZXYtc2htLXVzYWdlJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENocm9tZUFyZ3MgKHsgY29uZmlnLCBjZHBQb3J0LCBwbGF0Zm9ybUFyZ3MsIHRlbXBQcm9maWxlRGlyLCBpc0NvbnRhaW5lcml6ZWQsIGlzTmF0aXZlQXV0b21hdGlvbiwgYnJvd3Nlck5hbWUgfSkge1xuICAgIGNvbnN0IGhlYWRsZXNzTW9kZSA9IFsnY2hyb21lJywgJ2Nocm9taXVtJ10uaW5jbHVkZXMoYnJvd3Nlck5hbWUpID8gJy0taGVhZGxlc3M9bmV3JyA6ICctLWhlYWRsZXNzJztcbiAgICBjb25zdCBkZWZhdWx0QXJncyAgPSBbJy0tZGlzYWJsZS1zZWFyY2gtZW5naW5lLWNob2ljZS1zY3JlZW4nXTtcblxuICAgIGxldCBjaHJvbWVBcmdzID0gW11cbiAgICAgICAgLmNvbmNhdChcbiAgICAgICAgICAgIGNkcFBvcnQgPyBbYC0tcmVtb3RlLWRlYnVnZ2luZy1wb3J0PSR7Y2RwUG9ydH1gXSA6IFtdLFxuICAgICAgICAgICAgIWNvbmZpZy51c2VyUHJvZmlsZSA/IFtgLS11c2VyLWRhdGEtZGlyPSR7dGVtcFByb2ZpbGVEaXIucGF0aH1gXSA6IFtdLFxuICAgICAgICAgICAgY29uZmlnLmhlYWRsZXNzID8gW2hlYWRsZXNzTW9kZV0gOiBbXSxcbiAgICAgICAgICAgIGNvbmZpZy51c2VyQXJncyA/IFtjb25maWcudXNlckFyZ3NdIDogW10sXG4gICAgICAgICAgICAvLyBOT1RFOiB3ZSBuZWVkIHRvIHByZXZlbnQgbmV3IHdpbmRvdyBibG9ja2luZyBmb3IgbXVsdGlwbGUgd2luZG93cyBpbiBOYXRpdmUgQXV0b21hdGlvblxuICAgICAgICAgICAgaXNOYXRpdmVBdXRvbWF0aW9uID8gWyctLWRpc2FibGUtcG9wdXAtYmxvY2tpbmcnXSA6IFtdLFxuICAgICAgICAgICAgcGxhdGZvcm1BcmdzID8gW3BsYXRmb3JtQXJnc10gOiBbXSxcbiAgICAgICAgICAgIGRlZmF1bHRBcmdzXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKTtcblxuICAgIGlmIChpc0NvbnRhaW5lcml6ZWQpIHtcbiAgICAgICAgQ09OVEFJTkVSSVpFRF9DSFJPTUVfRkxBR1MuZm9yRWFjaChmbGFnID0+IHtcbiAgICAgICAgICAgIGlmICghY2hyb21lQXJncy5pbmNsdWRlcyhmbGFnKSlcbiAgICAgICAgICAgICAgICBjaHJvbWVBcmdzID0gY2hyb21lQXJncy5jb25jYXQoJyAnLCBmbGFnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNocm9tZUFyZ3M7XG59XG4iXX0=
|
|
@@ -6,9 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getActiveTab = exports.getFirstTab = exports.getTabById = exports.getTabs = void 0;
|
|
7
7
|
const chrome_remote_interface_1 = __importDefault(require("chrome-remote-interface"));
|
|
8
8
|
const DEVTOOLS_TAB_URL_REGEX = /^devtools:\/\/devtools/;
|
|
9
|
+
// NOTE: Github issue: https://github.com/DevExpress/testcafe/issues/8286
|
|
10
|
+
const CHROME_EXTENSION_TAB_URL_REGEX = /^chrome-extension:\/\//;
|
|
11
|
+
function isInternalUrl(url) {
|
|
12
|
+
return DEVTOOLS_TAB_URL_REGEX.test(url) || CHROME_EXTENSION_TAB_URL_REGEX.test(url);
|
|
13
|
+
}
|
|
9
14
|
async function getTabs(port) {
|
|
10
15
|
const tabs = await chrome_remote_interface_1.default.List({ port });
|
|
11
|
-
return tabs.filter(t => t.type === 'page' && !
|
|
16
|
+
return tabs.filter(t => t.type === 'page' && !isInternalUrl(t.url));
|
|
12
17
|
}
|
|
13
18
|
exports.getTabs = getTabs;
|
|
14
19
|
async function getTabById(port, id) {
|
|
@@ -28,4 +33,4 @@ async function getActiveTab(port, activeWindowId) {
|
|
|
28
33
|
return tabs[0];
|
|
29
34
|
}
|
|
30
35
|
exports.getActiveTab = getActiveTab;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0ZBQW1FO0FBRW5FLE1BQU0sc0JBQXNCLEdBQUcsd0JBQXdCLENBQUM7QUFDeEQseUVBQXlFO0FBQ3pFLE1BQU0sOEJBQThCLEdBQUcsd0JBQXdCLENBQUM7QUFFaEUsU0FBUyxhQUFhLENBQUUsR0FBVztJQUMvQixPQUFPLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVNLEtBQUssVUFBVSxPQUFPLENBQUUsSUFBWTtJQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLGlDQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUvQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBSkQsMEJBSUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUFFLElBQVksRUFBRSxFQUFVO0lBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFlLENBQUM7QUFDekQsQ0FBQztBQUpELGdDQUlDO0FBRU0sS0FBSyxVQUFVLFdBQVcsQ0FBRSxJQUFZO0lBQzNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFKRCxrQ0FJQztBQUVNLEtBQUssVUFBVSxZQUFZLENBQUUsSUFBWSxFQUFFLGNBQXNCO0lBQ3BFLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFlLENBQUM7SUFFMUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQVBELG9DQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlbW90ZUNocm9tZSwgeyBUYXJnZXRJbmZvIH0gZnJvbSAnY2hyb21lLXJlbW90ZS1pbnRlcmZhY2UnO1xuXG5jb25zdCBERVZUT09MU19UQUJfVVJMX1JFR0VYID0gL15kZXZ0b29sczpcXC9cXC9kZXZ0b29scy87XG4vLyBOT1RFOiBHaXRodWIgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9EZXZFeHByZXNzL3Rlc3RjYWZlL2lzc3Vlcy84Mjg2XG5jb25zdCBDSFJPTUVfRVhURU5TSU9OX1RBQl9VUkxfUkVHRVggPSAvXmNocm9tZS1leHRlbnNpb246XFwvXFwvLztcblxuZnVuY3Rpb24gaXNJbnRlcm5hbFVybCAodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gREVWVE9PTFNfVEFCX1VSTF9SRUdFWC50ZXN0KHVybCkgfHwgQ0hST01FX0VYVEVOU0lPTl9UQUJfVVJMX1JFR0VYLnRlc3QodXJsKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRhYnMgKHBvcnQ6IG51bWJlcik6IFByb21pc2U8VGFyZ2V0SW5mb1tdPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IHJlbW90ZUNocm9tZS5MaXN0KHsgcG9ydCB9KTtcblxuICAgIHJldHVybiB0YWJzLmZpbHRlcih0ID0+IHQudHlwZSA9PT0gJ3BhZ2UnICYmICFpc0ludGVybmFsVXJsKHQudXJsKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUYWJCeUlkIChwb3J0OiBudW1iZXIsIGlkOiBzdHJpbmcpOiBQcm9taXNlPFRhcmdldEluZm8+IHtcbiAgICBjb25zdCB0YWJzID0gYXdhaXQgZ2V0VGFicyhwb3J0KTtcblxuICAgIHJldHVybiB0YWJzLmZpbmQodGFiID0+IHRhYi5pZCA9PT0gaWQpIGFzIFRhcmdldEluZm87XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGaXJzdFRhYiAocG9ydDogbnVtYmVyKTogUHJvbWlzZTxUYXJnZXRJbmZvPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IGdldFRhYnMocG9ydCk7XG5cbiAgICByZXR1cm4gdGFic1swXTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFjdGl2ZVRhYiAocG9ydDogbnVtYmVyLCBhY3RpdmVXaW5kb3dJZDogc3RyaW5nKTogUHJvbWlzZTxUYXJnZXRJbmZvPiB7XG4gICAgY29uc3QgdGFicyA9IGF3YWl0IGdldFRhYnMocG9ydCk7XG5cbiAgICBpZiAoYWN0aXZlV2luZG93SWQpXG4gICAgICAgIHJldHVybiB0YWJzLmZpbmQodCA9PiB0LnRpdGxlLmluY2x1ZGVzKGFjdGl2ZVdpbmRvd0lkKSkgYXMgVGFyZ2V0SW5mbztcblxuICAgIHJldHVybiB0YWJzWzBdO1xufVxuIl19
|