UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

35 lines 5.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const argument_parsing_1 = require("../../../utils/argument-parsing"); const AVAILABLE_MODES = ['userProfile', 'headless']; const configCache = {}; function hasCustomProfile(userArgs) { return !!(userArgs.match(/-P\s/) || userArgs.match(/-profile\s/)); } function parseModes(modesStr, userArgs) { const parsed = (0, argument_parsing_1.splitEscaped)(modesStr, ':'); const path = (0, argument_parsing_1.getPathFromParsedModes)(parsed, AVAILABLE_MODES); const detectedModes = (0, argument_parsing_1.getModes)(parsed, AVAILABLE_MODES); const optionsString = parsed.filter(item => !!item).join(':'); const options = parsed.length ? (0, argument_parsing_1.splitEscaped)(optionsString, ';') : []; return { path: path, userProfile: detectedModes.userProfile || hasCustomProfile(userArgs), headless: detectedModes.headless, marionettePort: (0, argument_parsing_1.findMatch)(options, /^marionettePort=(.*)/), disableMultiprocessing: (0, argument_parsing_1.isMatchTrue)(options, /^disableMultiprocessing=(.*)/), }; } function getNewConfig(configString) { const { userArgs, modesString } = (0, argument_parsing_1.parseConfig)(configString); const modes = parseModes(modesString, userArgs); return Object.assign({ userArgs }, modes); } function default_1(configString) { if (!configCache[configString]) configCache[configString] = getNewConfig(configString); return configCache[configString]; } exports.default = default_1; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2ZpcmVmb3gvY29uZmlnLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0VBT3lDO0FBR3pDLE1BQU0sZUFBZSxHQUFHLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRXBELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUV2QixTQUFTLGdCQUFnQixDQUFFLFFBQVE7SUFDL0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUUsUUFBUSxFQUFFLFFBQVE7SUFDbkMsTUFBTSxNQUFNLEdBQVUsSUFBQSwrQkFBWSxFQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRCxNQUFNLElBQUksR0FBWSxJQUFBLHlDQUFzQixFQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN0RSxNQUFNLGFBQWEsR0FBRyxJQUFBLDJCQUFRLEVBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlELE1BQU0sT0FBTyxHQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUEsK0JBQVksRUFBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUU1RSxPQUFPO1FBQ0gsSUFBSSxFQUFvQixJQUFJO1FBQzVCLFdBQVcsRUFBYSxhQUFhLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUMvRSxRQUFRLEVBQWdCLGFBQWEsQ0FBQyxRQUFRO1FBQzlDLGNBQWMsRUFBVSxJQUFBLDRCQUFTLEVBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDO1FBQ2xFLHNCQUFzQixFQUFFLElBQUEsOEJBQVcsRUFBQyxPQUFPLEVBQUUsOEJBQThCLENBQUM7S0FDL0UsQ0FBQztBQUNOLENBQUM7QUFHRCxTQUFTLFlBQVksQ0FBRSxZQUFZO0lBQy9CLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBQSw4QkFBVyxFQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVELE1BQU0sS0FBSyxHQUF1QixVQUFVLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXBFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxtQkFBeUIsWUFBWTtJQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztRQUMxQixXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTNELE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFMRCw0QkFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgZmluZE1hdGNoLFxuICAgIGlzTWF0Y2hUcnVlLFxuICAgIHNwbGl0RXNjYXBlZCxcbiAgICBwYXJzZUNvbmZpZyxcbiAgICBnZXRNb2RlcyxcbiAgICBnZXRQYXRoRnJvbVBhcnNlZE1vZGVzLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9hcmd1bWVudC1wYXJzaW5nJztcblxuXG5jb25zdCBBVkFJTEFCTEVfTU9ERVMgPSBbJ3VzZXJQcm9maWxlJywgJ2hlYWRsZXNzJ107XG5cbmNvbnN0IGNvbmZpZ0NhY2hlID0ge307XG5cbmZ1bmN0aW9uIGhhc0N1c3RvbVByb2ZpbGUgKHVzZXJBcmdzKSB7XG4gICAgcmV0dXJuICEhKHVzZXJBcmdzLm1hdGNoKC8tUFxccy8pIHx8IHVzZXJBcmdzLm1hdGNoKC8tcHJvZmlsZVxccy8pKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VNb2RlcyAobW9kZXNTdHIsIHVzZXJBcmdzKSB7XG4gICAgY29uc3QgcGFyc2VkICAgICAgICA9IHNwbGl0RXNjYXBlZChtb2Rlc1N0ciwgJzonKTtcbiAgICBjb25zdCBwYXRoICAgICAgICAgID0gZ2V0UGF0aEZyb21QYXJzZWRNb2RlcyhwYXJzZWQsIEFWQUlMQUJMRV9NT0RFUyk7XG4gICAgY29uc3QgZGV0ZWN0ZWRNb2RlcyA9IGdldE1vZGVzKHBhcnNlZCwgQVZBSUxBQkxFX01PREVTKTtcbiAgICBjb25zdCBvcHRpb25zU3RyaW5nID0gcGFyc2VkLmZpbHRlcihpdGVtID0+ICEhaXRlbSkuam9pbignOicpO1xuICAgIGNvbnN0IG9wdGlvbnMgICAgICAgPSBwYXJzZWQubGVuZ3RoID8gc3BsaXRFc2NhcGVkKG9wdGlvbnNTdHJpbmcsICc7JykgOiBbXTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHBhdGg6ICAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgIHVzZXJQcm9maWxlOiAgICAgICAgICAgIGRldGVjdGVkTW9kZXMudXNlclByb2ZpbGUgfHwgaGFzQ3VzdG9tUHJvZmlsZSh1c2VyQXJncyksXG4gICAgICAgIGhlYWRsZXNzOiAgICAgICAgICAgICAgIGRldGVjdGVkTW9kZXMuaGVhZGxlc3MsXG4gICAgICAgIG1hcmlvbmV0dGVQb3J0OiAgICAgICAgIGZpbmRNYXRjaChvcHRpb25zLCAvXm1hcmlvbmV0dGVQb3J0PSguKikvKSxcbiAgICAgICAgZGlzYWJsZU11bHRpcHJvY2Vzc2luZzogaXNNYXRjaFRydWUob3B0aW9ucywgL15kaXNhYmxlTXVsdGlwcm9jZXNzaW5nPSguKikvKSxcbiAgICB9O1xufVxuXG5cbmZ1bmN0aW9uIGdldE5ld0NvbmZpZyAoY29uZmlnU3RyaW5nKSB7XG4gICAgY29uc3QgeyB1c2VyQXJncywgbW9kZXNTdHJpbmcgfSA9IHBhcnNlQ29uZmlnKGNvbmZpZ1N0cmluZyk7XG4gICAgY29uc3QgbW9kZXMgICAgICAgICAgICAgICAgICAgICA9IHBhcnNlTW9kZXMobW9kZXNTdHJpbmcsIHVzZXJBcmdzKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHsgdXNlckFyZ3MgfSwgbW9kZXMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoY29uZmlnU3RyaW5nKSB7XG4gICAgaWYgKCFjb25maWdDYWNoZVtjb25maWdTdHJpbmddKVxuICAgICAgICBjb25maWdDYWNoZVtjb25maWdTdHJpbmddID0gZ2V0TmV3Q29uZmlnKGNvbmZpZ1N0cmluZyk7XG5cbiAgICByZXR1cm4gY29uZmlnQ2FjaGVbY29uZmlnU3RyaW5nXTtcbn1cbiJdfQ==