UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

68 lines 9.32 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const embedding_utils_1 = __importDefault(require("./embedding-utils")); const exportable_lib_1 = __importDefault(require("./api/exportable-lib")); const testcafe_configuration_1 = __importDefault(require("./configuration/testcafe-configuration")); const option_names_1 = __importDefault(require("./configuration/option-names")); const user_variables_1 = __importDefault(require("./api/user-variables")); const utils_1 = require("./configuration/utils"); const get_testcafe_version_1 = __importDefault(require("./utils/get-testcafe-version")); const debug_loggers_1 = require("./utils/debug-loggers"); const lazyRequire = require('import-lazy')(require); const TestCafe = lazyRequire('./testcafe'); const setupExitHook = lazyRequire('async-exit-hook'); // API async function getConfiguration(args) { var _a; let configuration; if (args.length === 1 && typeof args[0] === 'object') { configuration = new testcafe_configuration_1.default((_a = args[0]) === null || _a === void 0 ? void 0 : _a.configFile); await configuration.init(args[0]); } else { // NOTE: Positional arguments support is left only for backward compatibility. // It should be removed in future TestCafe versions. // All new APIs should be enabled through the configuration object in the upper clause. // Please do not add new APIs here. const [hostname, port1, port2, ssl, developmentMode, retryTestPages, cache, configFile] = args; configuration = new testcafe_configuration_1.default(configFile); await configuration.init({ hostname, port1, port2, ssl, developmentMode, retryTestPages, cache, }); } return configuration; } // API async function createTestCafe(...args) { (0, debug_loggers_1.versionLogger)((0, get_testcafe_version_1.default)()); const configuration = await getConfiguration(args); const [port1, port2] = await Promise.all([ (0, utils_1.getValidPort)(configuration.getOption(option_names_1.default.port1)), (0, utils_1.getValidPort)(configuration.getOption(option_names_1.default.port2)), ]); const userVariablesOption = configuration.getOption(option_names_1.default.userVariables); if (userVariablesOption) user_variables_1.default.value = userVariablesOption; configuration.mergeOptions({ port1, port2 }); const testcafe = new TestCafe(configuration); setupExitHook(cb => testcafe.close().then(cb)); return testcafe; } // Embedding utils createTestCafe.embeddingUtils = embedding_utils_1.default; // Common API Object.keys(exportable_lib_1.default).forEach(key => { Object.defineProperty(createTestCafe, key, { get: () => exportable_lib_1.default[key] }); }); exports.default = createTestCafe; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBK0M7QUFDL0MsMEVBQWlEO0FBQ2pELG9HQUEyRTtBQUMzRSxnRkFBd0Q7QUFDeEQsMEVBQWlEO0FBQ2pELGlEQUFxRDtBQUNyRCx3RkFBOEQ7QUFDOUQseURBQXNEO0FBRXRELE1BQU0sV0FBVyxHQUFLLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN0RCxNQUFNLFFBQVEsR0FBUSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDaEQsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFckQsTUFBTTtBQUNOLEtBQUssVUFBVSxnQkFBZ0IsQ0FBRSxJQUFJOztJQUNqQyxJQUFJLGFBQWEsQ0FBQztJQUVsQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUNsRCxhQUFhLEdBQUcsSUFBSSxnQ0FBcUIsQ0FBQyxNQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsMENBQUUsVUFBVSxDQUFDLENBQUM7UUFFL0QsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3JDO1NBQ0k7UUFDRCw4RUFBOEU7UUFDOUUsb0RBQW9EO1FBQ3BELHVGQUF1RjtRQUN2RixtQ0FBbUM7UUFDbkMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFL0YsYUFBYSxHQUFHLElBQUksZ0NBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdEQsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ3JCLFFBQVE7WUFDUixLQUFLO1lBQ0wsS0FBSztZQUNMLEdBQUc7WUFDSCxlQUFlO1lBQ2YsY0FBYztZQUNkLEtBQUs7U0FDUixDQUFDLENBQUM7S0FDTjtJQUVELE9BQU8sYUFBYSxDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNO0FBQ04sS0FBSyxVQUFVLGNBQWMsQ0FBRSxHQUFHLElBQUk7SUFDbEMsSUFBQSw2QkFBYSxFQUFDLElBQUEsOEJBQWtCLEdBQUUsQ0FBQyxDQUFDO0lBRXBDLE1BQU0sYUFBYSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbkQsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDckMsSUFBQSxvQkFBWSxFQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsc0JBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFBLG9CQUFZLEVBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxzQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVELENBQUMsQ0FBQztJQUVILE1BQU0sbUJBQW1CLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxzQkFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWhGLElBQUksbUJBQW1CO1FBQ25CLHdCQUFhLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDO0lBRTlDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUU3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUU3QyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0MsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVELGtCQUFrQjtBQUNsQixjQUFjLENBQUMsY0FBYyxHQUFHLHlCQUFjLENBQUM7QUFFL0MsYUFBYTtBQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUNyQyxNQUFNLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsd0JBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEYsQ0FBQyxDQUFDLENBQUM7QUFFSCxrQkFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZW1iZWRkaW5nVXRpbHMgZnJvbSAnLi9lbWJlZGRpbmctdXRpbHMnO1xuaW1wb3J0IGV4cG9ydGFibGVMaWIgZnJvbSAnLi9hcGkvZXhwb3J0YWJsZS1saWInO1xuaW1wb3J0IFRlc3RDYWZlQ29uZmlndXJhdGlvbiBmcm9tICcuL2NvbmZpZ3VyYXRpb24vdGVzdGNhZmUtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgT1BUSU9OX05BTUVTIGZyb20gJy4vY29uZmlndXJhdGlvbi9vcHRpb24tbmFtZXMnO1xuaW1wb3J0IHVzZXJWYXJpYWJsZXMgZnJvbSAnLi9hcGkvdXNlci12YXJpYWJsZXMnO1xuaW1wb3J0IHsgZ2V0VmFsaWRQb3J0IH0gZnJvbSAnLi9jb25maWd1cmF0aW9uL3V0aWxzJztcbmltcG9ydCBnZXRUZXN0Q2FmZVZlcnNpb24gZnJvbSAnLi91dGlscy9nZXQtdGVzdGNhZmUtdmVyc2lvbic7XG5pbXBvcnQgeyB2ZXJzaW9uTG9nZ2VyIH0gZnJvbSAnLi91dGlscy9kZWJ1Zy1sb2dnZXJzJztcblxuY29uc3QgbGF6eVJlcXVpcmUgICA9IHJlcXVpcmUoJ2ltcG9ydC1sYXp5JykocmVxdWlyZSk7XG5jb25zdCBUZXN0Q2FmZSAgICAgID0gbGF6eVJlcXVpcmUoJy4vdGVzdGNhZmUnKTtcbmNvbnN0IHNldHVwRXhpdEhvb2sgPSBsYXp5UmVxdWlyZSgnYXN5bmMtZXhpdC1ob29rJyk7XG5cbi8vIEFQSVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29uZmlndXJhdGlvbiAoYXJncykge1xuICAgIGxldCBjb25maWd1cmF0aW9uO1xuXG4gICAgaWYgKGFyZ3MubGVuZ3RoID09PSAxICYmIHR5cGVvZiBhcmdzWzBdID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25maWd1cmF0aW9uID0gbmV3IFRlc3RDYWZlQ29uZmlndXJhdGlvbihhcmdzWzBdPy5jb25maWdGaWxlKTtcblxuICAgICAgICBhd2FpdCBjb25maWd1cmF0aW9uLmluaXQoYXJnc1swXSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBOT1RFOiBQb3NpdGlvbmFsIGFyZ3VtZW50cyBzdXBwb3J0IGlzIGxlZnQgb25seSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgICAgLy8gSXQgc2hvdWxkIGJlIHJlbW92ZWQgaW4gZnV0dXJlIFRlc3RDYWZlIHZlcnNpb25zLlxuICAgICAgICAvLyBBbGwgbmV3IEFQSXMgc2hvdWxkIGJlIGVuYWJsZWQgdGhyb3VnaCB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QgaW4gdGhlIHVwcGVyIGNsYXVzZS5cbiAgICAgICAgLy8gUGxlYXNlIGRvIG5vdCBhZGQgbmV3IEFQSXMgaGVyZS5cbiAgICAgICAgY29uc3QgW2hvc3RuYW1lLCBwb3J0MSwgcG9ydDIsIHNzbCwgZGV2ZWxvcG1lbnRNb2RlLCByZXRyeVRlc3RQYWdlcywgY2FjaGUsIGNvbmZpZ0ZpbGVdID0gYXJncztcblxuICAgICAgICBjb25maWd1cmF0aW9uID0gbmV3IFRlc3RDYWZlQ29uZmlndXJhdGlvbihjb25maWdGaWxlKTtcblxuICAgICAgICBhd2FpdCBjb25maWd1cmF0aW9uLmluaXQoe1xuICAgICAgICAgICAgaG9zdG5hbWUsXG4gICAgICAgICAgICBwb3J0MSxcbiAgICAgICAgICAgIHBvcnQyLFxuICAgICAgICAgICAgc3NsLFxuICAgICAgICAgICAgZGV2ZWxvcG1lbnRNb2RlLFxuICAgICAgICAgICAgcmV0cnlUZXN0UGFnZXMsXG4gICAgICAgICAgICBjYWNoZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XG59XG5cbi8vIEFQSVxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlVGVzdENhZmUgKC4uLmFyZ3MpIHtcbiAgICB2ZXJzaW9uTG9nZ2VyKGdldFRlc3RDYWZlVmVyc2lvbigpKTtcblxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXRDb25maWd1cmF0aW9uKGFyZ3MpO1xuXG4gICAgY29uc3QgW3BvcnQxLCBwb3J0Ml0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIGdldFZhbGlkUG9ydChjb25maWd1cmF0aW9uLmdldE9wdGlvbihPUFRJT05fTkFNRVMucG9ydDEpKSxcbiAgICAgICAgZ2V0VmFsaWRQb3J0KGNvbmZpZ3VyYXRpb24uZ2V0T3B0aW9uKE9QVElPTl9OQU1FUy5wb3J0MikpLFxuICAgIF0pO1xuXG4gICAgY29uc3QgdXNlclZhcmlhYmxlc09wdGlvbiA9IGNvbmZpZ3VyYXRpb24uZ2V0T3B0aW9uKE9QVElPTl9OQU1FUy51c2VyVmFyaWFibGVzKTtcblxuICAgIGlmICh1c2VyVmFyaWFibGVzT3B0aW9uKVxuICAgICAgICB1c2VyVmFyaWFibGVzLnZhbHVlID0gdXNlclZhcmlhYmxlc09wdGlvbjtcblxuICAgIGNvbmZpZ3VyYXRpb24ubWVyZ2VPcHRpb25zKHsgcG9ydDEsIHBvcnQyIH0pO1xuXG4gICAgY29uc3QgdGVzdGNhZmUgPSBuZXcgVGVzdENhZmUoY29uZmlndXJhdGlvbik7XG5cbiAgICBzZXR1cEV4aXRIb29rKGNiID0+IHRlc3RjYWZlLmNsb3NlKCkudGhlbihjYikpO1xuXG4gICAgcmV0dXJuIHRlc3RjYWZlO1xufVxuXG4vLyBFbWJlZGRpbmcgdXRpbHNcbmNyZWF0ZVRlc3RDYWZlLmVtYmVkZGluZ1V0aWxzID0gZW1iZWRkaW5nVXRpbHM7XG5cbi8vIENvbW1vbiBBUElcbk9iamVjdC5rZXlzKGV4cG9ydGFibGVMaWIpLmZvckVhY2goa2V5ID0+IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlVGVzdENhZmUsIGtleSwgeyBnZXQ6ICgpID0+IGV4cG9ydGFibGVMaWJba2V5XSB9KTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVUZXN0Q2FmZTtcbiJdfQ==