UNPKG

@browserstack/testcafe

Version:

Automated browser testing for the modern web development stack.

36 lines 6.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const os_family_1 = __importDefault(require("os-family")); const testcafe_browser_tools_1 = __importDefault(require("testcafe-browser-tools")); const process_1 = require("../../../../../utils/process"); const browser_starter_1 = __importDefault(require("../../../utils/browser-starter")); const browserStarter = new browser_starter_1.default(); function correctOpenParametersForMac(parameters) { parameters.macOpenCmdTemplate = parameters.macOpenCmdTemplate .replace('open', 'open -n') .replace(' {{{pageUrl}}}', ''); parameters.macOpenCmdTemplate += ' {{{pageUrl}}}'; } function buildFirefoxArgs(config, platformArgs, { marionettePort, tempProfileDir }) { return [] .concat(marionettePort ? ['-marionette'] : [], !config.userProfile ? ['-no-remote', '-new-instance', `-profile "${tempProfileDir.path}"`] : [], config.headless ? ['-headless'] : [], config.userArgs ? [config.userArgs] : [], platformArgs ? [platformArgs] : []) .join(' '); } async function start(pageUrl, runtimeInfo) { const { browserName, config } = runtimeInfo; const firefoxInfo = await testcafe_browser_tools_1.default.getBrowserInfo(config.path || browserName); const firefoxOpenParameters = Object.assign({}, firefoxInfo); if (os_family_1.default.mac && !config.userProfile) correctOpenParametersForMac(firefoxOpenParameters); firefoxOpenParameters.cmd = buildFirefoxArgs(config, firefoxOpenParameters.cmd, runtimeInfo, runtimeInfo.newInstance); await browserStarter.startBrowser(firefoxOpenParameters, pageUrl); } exports.start = start; async function stop({ browserId }) { await process_1.killBrowserProcess(browserId); } exports.stop = stop; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZmlyZWZveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL2J1aWx0LWluL2RlZGljYXRlZC9maXJlZm94L2xvY2FsLWZpcmVmb3guanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBMkI7QUFDM0Isb0ZBQWtEO0FBQ2xELDBEQUFrRTtBQUNsRSxxRkFBNEQ7QUFHNUQsTUFBTSxjQUFjLEdBQUcsSUFBSSx5QkFBYyxFQUFFLENBQUM7QUFFNUMsU0FBUywyQkFBMkIsQ0FBRSxVQUFVO0lBQzVDLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUMsa0JBQWtCO1NBQ3hELE9BQU8sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1NBQzFCLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVuQyxVQUFVLENBQUMsa0JBQWtCLElBQUksZ0JBQWdCLENBQUM7QUFDdEQsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUU7SUFDL0UsT0FBTyxFQUFFO1NBQ0osTUFBTSxDQUNILGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNyQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLGNBQWMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQy9GLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDeEMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3JDO1NBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFFTSxLQUFLLFVBQVUsS0FBSyxDQUFFLE9BQU8sRUFBRSxXQUFXO0lBQzdDLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDO0lBRTVDLE1BQU0sV0FBVyxHQUFhLE1BQU0sZ0NBQVksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsQ0FBQztJQUM1RixNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRTdELElBQUksbUJBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVztRQUM3QiwyQkFBMkIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRXZELHFCQUFxQixDQUFDLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdEgsTUFBTSxjQUFjLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFaRCxzQkFZQztBQUVNLEtBQUssVUFBVSxJQUFJLENBQUUsRUFBRSxTQUFTLEVBQUU7SUFDckMsTUFBTSw0QkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsb0JBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT1MgZnJvbSAnb3MtZmFtaWx5JztcbmltcG9ydCBicm93c2VyVG9vbHMgZnJvbSAndGVzdGNhZmUtYnJvd3Nlci10b29scyc7XG5pbXBvcnQgeyBraWxsQnJvd3NlclByb2Nlc3MgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscy9wcm9jZXNzJztcbmltcG9ydCBCcm93c2VyU3RhcnRlciBmcm9tICcuLi8uLi8uLi91dGlscy9icm93c2VyLXN0YXJ0ZXInO1xuXG5cbmNvbnN0IGJyb3dzZXJTdGFydGVyID0gbmV3IEJyb3dzZXJTdGFydGVyKCk7XG5cbmZ1bmN0aW9uIGNvcnJlY3RPcGVuUGFyYW1ldGVyc0Zvck1hYyAocGFyYW1ldGVycykge1xuICAgIHBhcmFtZXRlcnMubWFjT3BlbkNtZFRlbXBsYXRlID0gcGFyYW1ldGVycy5tYWNPcGVuQ21kVGVtcGxhdGVcbiAgICAgICAgLnJlcGxhY2UoJ29wZW4nLCAnb3BlbiAtbicpXG4gICAgICAgIC5yZXBsYWNlKCcge3t7cGFnZVVybH19fScsICcnKTtcblxuICAgIHBhcmFtZXRlcnMubWFjT3BlbkNtZFRlbXBsYXRlICs9ICcge3t7cGFnZVVybH19fSc7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRmlyZWZveEFyZ3MgKGNvbmZpZywgcGxhdGZvcm1BcmdzLCB7IG1hcmlvbmV0dGVQb3J0LCB0ZW1wUHJvZmlsZURpciB9KSB7XG4gICAgcmV0dXJuIFtdXG4gICAgICAgIC5jb25jYXQoXG4gICAgICAgICAgICBtYXJpb25ldHRlUG9ydCA/IFsnLW1hcmlvbmV0dGUnXSA6IFtdLFxuICAgICAgICAgICAgIWNvbmZpZy51c2VyUHJvZmlsZSA/IFsnLW5vLXJlbW90ZScsICctbmV3LWluc3RhbmNlJywgYC1wcm9maWxlIFwiJHt0ZW1wUHJvZmlsZURpci5wYXRofVwiYF0gOiBbXSxcbiAgICAgICAgICAgIGNvbmZpZy5oZWFkbGVzcyA/IFsnLWhlYWRsZXNzJ10gOiBbXSxcbiAgICAgICAgICAgIGNvbmZpZy51c2VyQXJncyA/IFtjb25maWcudXNlckFyZ3NdIDogW10sXG4gICAgICAgICAgICBwbGF0Zm9ybUFyZ3MgPyBbcGxhdGZvcm1BcmdzXSA6IFtdXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0IChwYWdlVXJsLCBydW50aW1lSW5mbykge1xuICAgIGNvbnN0IHsgYnJvd3Nlck5hbWUsIGNvbmZpZyB9ID0gcnVudGltZUluZm87XG5cbiAgICBjb25zdCBmaXJlZm94SW5mbyAgICAgICAgICAgPSBhd2FpdCBicm93c2VyVG9vbHMuZ2V0QnJvd3NlckluZm8oY29uZmlnLnBhdGggfHwgYnJvd3Nlck5hbWUpO1xuICAgIGNvbnN0IGZpcmVmb3hPcGVuUGFyYW1ldGVycyA9IE9iamVjdC5hc3NpZ24oe30sIGZpcmVmb3hJbmZvKTtcblxuICAgIGlmIChPUy5tYWMgJiYgIWNvbmZpZy51c2VyUHJvZmlsZSlcbiAgICAgICAgY29ycmVjdE9wZW5QYXJhbWV0ZXJzRm9yTWFjKGZpcmVmb3hPcGVuUGFyYW1ldGVycyk7XG5cbiAgICBmaXJlZm94T3BlblBhcmFtZXRlcnMuY21kID0gYnVpbGRGaXJlZm94QXJncyhjb25maWcsIGZpcmVmb3hPcGVuUGFyYW1ldGVycy5jbWQsIHJ1bnRpbWVJbmZvLCBydW50aW1lSW5mby5uZXdJbnN0YW5jZSk7XG5cbiAgICBhd2FpdCBicm93c2VyU3RhcnRlci5zdGFydEJyb3dzZXIoZmlyZWZveE9wZW5QYXJhbWV0ZXJzLCBwYWdlVXJsKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0b3AgKHsgYnJvd3NlcklkIH0pIHtcbiAgICBhd2FpdCBraWxsQnJvd3NlclByb2Nlc3MoYnJvd3NlcklkKTtcbn1cbiJdfQ==