UNPKG

@browserstack/testcafe

Version:

Automated browser testing for the modern web development stack.

35 lines 5.66 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 = argument_parsing_1.splitEscaped(modesStr, ':'); const path = argument_parsing_1.getPathFromParsedModes(parsed, AVAILABLE_MODES); const detectedModes = argument_parsing_1.getModes(parsed, AVAILABLE_MODES); const optionsString = parsed.filter(item => !!item).join(':'); const options = parsed.length ? argument_parsing_1.splitEscaped(optionsString, ';') : []; return { path: path, userProfile: detectedModes.userProfile || hasCustomProfile(userArgs), headless: detectedModes.headless, marionettePort: argument_parsing_1.findMatch(options, /^marionettePort=(.*)/), disableMultiprocessing: argument_parsing_1.isMatchTrue(options, /^disableMultiprocessing=(.*)/) }; } function getNewConfig(configString) { const { userArgs, modesString } = 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2ZpcmVmb3gvY29uZmlnLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0VBQXNJO0FBR3RJLE1BQU0sZUFBZSxHQUFHLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRXBELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUV2QixTQUFTLGdCQUFnQixDQUFFLFFBQVE7SUFDL0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUUsUUFBUSxFQUFFLFFBQVE7SUFDbkMsTUFBTSxNQUFNLEdBQVUsK0JBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEQsTUFBTSxJQUFJLEdBQVkseUNBQXNCLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sYUFBYSxHQUFHLDJCQUFRLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlELE1BQU0sT0FBTyxHQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLCtCQUFZLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFNUUsT0FBTztRQUNILElBQUksRUFBb0IsSUFBSTtRQUM1QixXQUFXLEVBQWEsYUFBYSxDQUFDLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7UUFDL0UsUUFBUSxFQUFnQixhQUFhLENBQUMsUUFBUTtRQUM5QyxjQUFjLEVBQVUsNEJBQVMsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUM7UUFDbEUsc0JBQXNCLEVBQUUsOEJBQVcsQ0FBQyxPQUFPLEVBQUUsOEJBQThCLENBQUM7S0FDL0UsQ0FBQztBQUNOLENBQUM7QUFHRCxTQUFTLFlBQVksQ0FBRSxZQUFZO0lBQy9CLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsOEJBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1RCxNQUFNLEtBQUssR0FBdUIsVUFBVSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVwRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsbUJBQXlCLFlBQVk7SUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7UUFDMUIsV0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUzRCxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBTEQsNEJBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaW5kTWF0Y2gsIGlzTWF0Y2hUcnVlLCBzcGxpdEVzY2FwZWQsIHBhcnNlQ29uZmlnLCBnZXRNb2RlcywgZ2V0UGF0aEZyb21QYXJzZWRNb2RlcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FyZ3VtZW50LXBhcnNpbmcnO1xuXG5cbmNvbnN0IEFWQUlMQUJMRV9NT0RFUyA9IFsndXNlclByb2ZpbGUnLCAnaGVhZGxlc3MnXTtcblxuY29uc3QgY29uZmlnQ2FjaGUgPSB7fTtcblxuZnVuY3Rpb24gaGFzQ3VzdG9tUHJvZmlsZSAodXNlckFyZ3MpIHtcbiAgICByZXR1cm4gISEodXNlckFyZ3MubWF0Y2goLy1QXFxzLykgfHwgdXNlckFyZ3MubWF0Y2goLy1wcm9maWxlXFxzLykpO1xufVxuXG5mdW5jdGlvbiBwYXJzZU1vZGVzIChtb2Rlc1N0ciwgdXNlckFyZ3MpIHtcbiAgICBjb25zdCBwYXJzZWQgICAgICAgID0gc3BsaXRFc2NhcGVkKG1vZGVzU3RyLCAnOicpO1xuICAgIGNvbnN0IHBhdGggICAgICAgICAgPSBnZXRQYXRoRnJvbVBhcnNlZE1vZGVzKHBhcnNlZCwgQVZBSUxBQkxFX01PREVTKTtcbiAgICBjb25zdCBkZXRlY3RlZE1vZGVzID0gZ2V0TW9kZXMocGFyc2VkLCBBVkFJTEFCTEVfTU9ERVMpO1xuICAgIGNvbnN0IG9wdGlvbnNTdHJpbmcgPSBwYXJzZWQuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKS5qb2luKCc6Jyk7XG4gICAgY29uc3Qgb3B0aW9ucyAgICAgICA9IHBhcnNlZC5sZW5ndGggPyBzcGxpdEVzY2FwZWQob3B0aW9uc1N0cmluZywgJzsnKSA6IFtdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgdXNlclByb2ZpbGU6ICAgICAgICAgICAgZGV0ZWN0ZWRNb2Rlcy51c2VyUHJvZmlsZSB8fCBoYXNDdXN0b21Qcm9maWxlKHVzZXJBcmdzKSxcbiAgICAgICAgaGVhZGxlc3M6ICAgICAgICAgICAgICAgZGV0ZWN0ZWRNb2Rlcy5oZWFkbGVzcyxcbiAgICAgICAgbWFyaW9uZXR0ZVBvcnQ6ICAgICAgICAgZmluZE1hdGNoKG9wdGlvbnMsIC9ebWFyaW9uZXR0ZVBvcnQ9KC4qKS8pLFxuICAgICAgICBkaXNhYmxlTXVsdGlwcm9jZXNzaW5nOiBpc01hdGNoVHJ1ZShvcHRpb25zLCAvXmRpc2FibGVNdWx0aXByb2Nlc3Npbmc9KC4qKS8pXG4gICAgfTtcbn1cblxuXG5mdW5jdGlvbiBnZXROZXdDb25maWcgKGNvbmZpZ1N0cmluZykge1xuICAgIGNvbnN0IHsgdXNlckFyZ3MsIG1vZGVzU3RyaW5nIH0gPSBwYXJzZUNvbmZpZyhjb25maWdTdHJpbmcpO1xuICAgIGNvbnN0IG1vZGVzICAgICAgICAgICAgICAgICAgICAgPSBwYXJzZU1vZGVzKG1vZGVzU3RyaW5nLCB1c2VyQXJncyk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IHVzZXJBcmdzIH0sIG1vZGVzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKGNvbmZpZ1N0cmluZykge1xuICAgIGlmICghY29uZmlnQ2FjaGVbY29uZmlnU3RyaW5nXSlcbiAgICAgICAgY29uZmlnQ2FjaGVbY29uZmlnU3RyaW5nXSA9IGdldE5ld0NvbmZpZyhjb25maWdTdHJpbmcpO1xuXG4gICAgcmV0dXJuIGNvbmZpZ0NhY2hlW2NvbmZpZ1N0cmluZ107XG59XG4iXX0=