testcafe
Version:
Automated browser testing for the modern web development stack.
70 lines • 9.22 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const get_exportable_lib_path_1 = __importDefault(require("../test-file/get-exportable-lib-path"));
function getPresetEnvForTestCodeOpts(dontUseModules) {
const opts = {
targets: { node: 'current' },
loose: true,
exclude: ['transform-regenerator'],
};
if (dontUseModules)
opts.modules = false;
return opts;
}
function getPresetEnvForClientFunctionOpts() {
return {
loose: true,
exclude: ['transform-typeof-symbol', 'transform-for-of'],
};
}
function getModuleResolverOpts(esm) {
return {
resolvePath(source) {
//NOTE: Prevent module caching to import 'fixture' and 'test' in ESM mode.
if (source === 'testcafe')
return (0, get_exportable_lib_path_1.default)(esm);
return source;
},
};
}
function getTransformForOfOptions() {
// NOTE: allowArrayLike is required to allow iterating non-iterable objects (e.g. NodeList)
// to preserve compatibility with older TestCafe code
return { loose: true, allowArrayLike: true };
}
function getTransformRuntimeOpts() {
// NOTE: We are forced to import helpers to each compiled file
// because of '@babel/plugin-transform-runtime' plugin cannot correctly resolve path
// to the helpers from the '@babel/runtime' module.
return {
'helpers': false,
};
}
function getPresetReact() {
const presetReact = require('@babel/preset-react');
presetReact.presets = []; // disables flow so it doesn't confict w/ presetFlow
return presetReact;
}
// NOTE: lazy load heavy dependencies
function loadLibs({ esm } = {}) {
return {
babel: require('@babel/core'),
presetStage2: require('./preset-stage-2'),
presetFlow: require('@babel/preset-flow'),
transformRuntime: [require('@babel/plugin-transform-runtime'), getTransformRuntimeOpts()],
transformForOfAsArray: [require('@babel/plugin-transform-for-of'), getTransformForOfOptions()],
presetEnvForClientFunction: [require('@babel/preset-env'), getPresetEnvForClientFunctionOpts()],
presetEnvForTestCode: [require('@babel/preset-env'), getPresetEnvForTestCodeOpts(esm)],
moduleResolver: [require('babel-plugin-module-resolver'), getModuleResolverOpts(esm)],
presetReact: getPresetReact(),
transformPrivateMethods: [require('@babel/plugin-transform-private-methods'), { loose: true }],
transformClassProperties: [require('@babel/plugin-transform-class-properties'), { loose: true }],
transformClassStaticBlock: require('@babel/plugin-transform-class-static-block'),
};
}
exports.default = loadLibs;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1saWJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBpbGVyL2JhYmVsL2xvYWQtbGlicy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1HQUF3RTtBQUV4RSxTQUFTLDJCQUEyQixDQUFFLGNBQWM7SUFDaEQsTUFBTSxJQUFJLEdBQUc7UUFDVCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1FBQzVCLEtBQUssRUFBSSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7S0FDckMsQ0FBQztJQUVGLElBQUksY0FBYztRQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXpCLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGlDQUFpQztJQUN0QyxPQUFPO1FBQ0gsS0FBSyxFQUFJLElBQUk7UUFDYixPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxrQkFBa0IsQ0FBQztLQUMzRCxDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUUsR0FBRztJQUMvQixPQUFPO1FBQ0gsV0FBVyxDQUFFLE1BQU07WUFDZiwwRUFBMEU7WUFDMUUsSUFBSSxNQUFNLEtBQUssVUFBVTtnQkFDckIsT0FBTyxJQUFBLGlDQUFvQixFQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXJDLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMsd0JBQXdCO0lBQzdCLDJGQUEyRjtJQUMzRixxREFBcUQ7SUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFFRCxTQUFTLHVCQUF1QjtJQUM1Qiw4REFBOEQ7SUFDOUQsb0ZBQW9GO0lBQ3BGLG1EQUFtRDtJQUNuRCxPQUFPO1FBQ0gsU0FBUyxFQUFFLEtBQUs7S0FDbkIsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLGNBQWM7SUFDbkIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFbkQsV0FBVyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxvREFBb0Q7SUFFOUUsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQztBQUVELHFDQUFxQztBQUNyQyxTQUF3QixRQUFRLENBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO0lBQzFDLE9BQU87UUFDSCxLQUFLLEVBQXVCLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDbEQsWUFBWSxFQUFnQixPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDdkQsVUFBVSxFQUFrQixPQUFPLENBQUMsb0JBQW9CLENBQUM7UUFDekQsZ0JBQWdCLEVBQVksQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1FBQ25HLHFCQUFxQixFQUFPLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztRQUNuRywwQkFBMEIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLGlDQUFpQyxFQUFFLENBQUM7UUFDL0Ysb0JBQW9CLEVBQVEsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1RixjQUFjLEVBQWMsQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRyxXQUFXLEVBQWlCLGNBQWMsRUFBRTtRQUM1Qyx1QkFBdUIsRUFBSyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2pHLHdCQUF3QixFQUFJLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDbEcseUJBQXlCLEVBQUcsT0FBTyxDQUFDLDRDQUE0QyxDQUFDO0tBQ3BGLENBQUM7QUFDTixDQUFDO0FBZkQsMkJBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ2V0RXhwb3J0YWJsZUxpYlBhdGggZnJvbSAnLi4vdGVzdC1maWxlL2dldC1leHBvcnRhYmxlLWxpYi1wYXRoJztcblxuZnVuY3Rpb24gZ2V0UHJlc2V0RW52Rm9yVGVzdENvZGVPcHRzIChkb250VXNlTW9kdWxlcykge1xuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgIHRhcmdldHM6IHsgbm9kZTogJ2N1cnJlbnQnIH0sXG4gICAgICAgIGxvb3NlOiAgIHRydWUsXG4gICAgICAgIGV4Y2x1ZGU6IFsndHJhbnNmb3JtLXJlZ2VuZXJhdG9yJ10sXG4gICAgfTtcblxuICAgIGlmIChkb250VXNlTW9kdWxlcylcbiAgICAgICAgb3B0cy5tb2R1bGVzID0gZmFsc2U7XG5cbiAgICByZXR1cm4gb3B0cztcbn1cblxuZnVuY3Rpb24gZ2V0UHJlc2V0RW52Rm9yQ2xpZW50RnVuY3Rpb25PcHRzICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBsb29zZTogICB0cnVlLFxuICAgICAgICBleGNsdWRlOiBbJ3RyYW5zZm9ybS10eXBlb2Ytc3ltYm9sJywgJ3RyYW5zZm9ybS1mb3Itb2YnXSxcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBnZXRNb2R1bGVSZXNvbHZlck9wdHMgKGVzbSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlc29sdmVQYXRoIChzb3VyY2UpIHtcbiAgICAgICAgICAgIC8vTk9URTogUHJldmVudCBtb2R1bGUgY2FjaGluZyB0byBpbXBvcnQgJ2ZpeHR1cmUnIGFuZCAndGVzdCcgaW4gRVNNIG1vZGUuXG4gICAgICAgICAgICBpZiAoc291cmNlID09PSAndGVzdGNhZmUnKVxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRFeHBvcnRhYmxlTGliUGF0aChlc20pO1xuXG4gICAgICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgICB9LFxuICAgIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zZm9ybUZvck9mT3B0aW9ucyAoKSB7XG4gICAgLy8gTk9URTogYWxsb3dBcnJheUxpa2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgaXRlcmF0aW5nIG5vbi1pdGVyYWJsZSBvYmplY3RzIChlLmcuIE5vZGVMaXN0KVxuICAgIC8vIHRvIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBUZXN0Q2FmZSBjb2RlXG4gICAgcmV0dXJuIHsgbG9vc2U6IHRydWUsIGFsbG93QXJyYXlMaWtlOiB0cnVlIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zZm9ybVJ1bnRpbWVPcHRzICgpIHtcbiAgICAvLyBOT1RFOiBXZSBhcmUgZm9yY2VkIHRvIGltcG9ydCBoZWxwZXJzIHRvIGVhY2ggY29tcGlsZWQgZmlsZVxuICAgIC8vIGJlY2F1c2Ugb2YgJ0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJ1bnRpbWUnIHBsdWdpbiBjYW5ub3QgY29ycmVjdGx5IHJlc29sdmUgcGF0aFxuICAgIC8vIHRvIHRoZSBoZWxwZXJzIGZyb20gdGhlICdAYmFiZWwvcnVudGltZScgbW9kdWxlLlxuICAgIHJldHVybiB7XG4gICAgICAgICdoZWxwZXJzJzogZmFsc2UsXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UHJlc2V0UmVhY3QgKCkge1xuICAgIGNvbnN0IHByZXNldFJlYWN0ID0gcmVxdWlyZSgnQGJhYmVsL3ByZXNldC1yZWFjdCcpO1xuXG4gICAgcHJlc2V0UmVhY3QucHJlc2V0cyA9IFtdOyAvLyBkaXNhYmxlcyBmbG93IHNvIGl0IGRvZXNuJ3QgY29uZmljdCB3LyBwcmVzZXRGbG93XG5cbiAgICByZXR1cm4gcHJlc2V0UmVhY3Q7XG59XG5cbi8vIE5PVEU6IGxhenkgbG9hZCBoZWF2eSBkZXBlbmRlbmNpZXNcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxvYWRMaWJzICh7IGVzbSB9ID0ge30pIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBiYWJlbDogICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZSgnQGJhYmVsL2NvcmUnKSxcbiAgICAgICAgcHJlc2V0U3RhZ2UyOiAgICAgICAgICAgICAgIHJlcXVpcmUoJy4vcHJlc2V0LXN0YWdlLTInKSxcbiAgICAgICAgcHJlc2V0RmxvdzogICAgICAgICAgICAgICAgIHJlcXVpcmUoJ0BiYWJlbC9wcmVzZXQtZmxvdycpLFxuICAgICAgICB0cmFuc2Zvcm1SdW50aW1lOiAgICAgICAgICAgW3JlcXVpcmUoJ0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJ1bnRpbWUnKSwgZ2V0VHJhbnNmb3JtUnVudGltZU9wdHMoKV0sXG4gICAgICAgIHRyYW5zZm9ybUZvck9mQXNBcnJheTogICAgICBbcmVxdWlyZSgnQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tZm9yLW9mJyksIGdldFRyYW5zZm9ybUZvck9mT3B0aW9ucygpXSxcbiAgICAgICAgcHJlc2V0RW52Rm9yQ2xpZW50RnVuY3Rpb246IFtyZXF1aXJlKCdAYmFiZWwvcHJlc2V0LWVudicpLCBnZXRQcmVzZXRFbnZGb3JDbGllbnRGdW5jdGlvbk9wdHMoKV0sXG4gICAgICAgIHByZXNldEVudkZvclRlc3RDb2RlOiAgICAgICBbcmVxdWlyZSgnQGJhYmVsL3ByZXNldC1lbnYnKSwgZ2V0UHJlc2V0RW52Rm9yVGVzdENvZGVPcHRzKGVzbSldLFxuICAgICAgICBtb2R1bGVSZXNvbHZlcjogICAgICAgICAgICAgW3JlcXVpcmUoJ2JhYmVsLXBsdWdpbi1tb2R1bGUtcmVzb2x2ZXInKSwgZ2V0TW9kdWxlUmVzb2x2ZXJPcHRzKGVzbSldLFxuICAgICAgICBwcmVzZXRSZWFjdDogICAgICAgICAgICAgICAgZ2V0UHJlc2V0UmVhY3QoKSxcbiAgICAgICAgdHJhbnNmb3JtUHJpdmF0ZU1ldGhvZHM6ICAgIFtyZXF1aXJlKCdAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wcml2YXRlLW1ldGhvZHMnKSwgeyBsb29zZTogdHJ1ZSB9XSxcbiAgICAgICAgdHJhbnNmb3JtQ2xhc3NQcm9wZXJ0aWVzOiAgIFtyZXF1aXJlKCdAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1jbGFzcy1wcm9wZXJ0aWVzJyksIHsgbG9vc2U6IHRydWUgfV0sXG4gICAgICAgIHRyYW5zZm9ybUNsYXNzU3RhdGljQmxvY2s6ICByZXF1aXJlKCdAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1jbGFzcy1zdGF0aWMtYmxvY2snKSxcbiAgICB9O1xufVxuIl19