UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

37 lines 6.44 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.stop = exports.start = void 0; 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 (0, process_1.killBrowserProcess)(browserId); } exports.stop = stop; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZmlyZWZveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL2J1aWx0LWluL2RlZGljYXRlZC9maXJlZm94L2xvY2FsLWZpcmVmb3guanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQTJCO0FBQzNCLG9GQUFrRDtBQUNsRCwwREFBa0U7QUFDbEUscUZBQTREO0FBRzVELE1BQU0sY0FBYyxHQUFHLElBQUkseUJBQWMsRUFBRSxDQUFDO0FBRTVDLFNBQVMsMkJBQTJCLENBQUUsVUFBVTtJQUM1QyxVQUFVLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLGtCQUFrQjtTQUN4RCxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztTQUMxQixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkMsVUFBVSxDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixDQUFDO0FBQ3RELENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFO0lBQy9FLE9BQU8sRUFBRTtTQUNKLE1BQU0sQ0FDSCxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDckMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxjQUFjLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUMvRixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3hDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNyQztTQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQixDQUFDO0FBRU0sS0FBSyxVQUFVLEtBQUssQ0FBRSxPQUFPLEVBQUUsV0FBVztJQUM3QyxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUU1QyxNQUFNLFdBQVcsR0FBYSxNQUFNLGdDQUFZLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLENBQUM7SUFDNUYsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU3RCxJQUFJLG1CQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7UUFDN0IsMkJBQTJCLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUV2RCxxQkFBcUIsQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXRILE1BQU0sY0FBYyxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBWkQsc0JBWUM7QUFFTSxLQUFLLFVBQVUsSUFBSSxDQUFFLEVBQUUsU0FBUyxFQUFFO0lBQ3JDLE1BQU0sSUFBQSw0QkFBa0IsRUFBQyxTQUFTLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsb0JBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT1MgZnJvbSAnb3MtZmFtaWx5JztcbmltcG9ydCBicm93c2VyVG9vbHMgZnJvbSAndGVzdGNhZmUtYnJvd3Nlci10b29scyc7XG5pbXBvcnQgeyBraWxsQnJvd3NlclByb2Nlc3MgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscy9wcm9jZXNzJztcbmltcG9ydCBCcm93c2VyU3RhcnRlciBmcm9tICcuLi8uLi8uLi91dGlscy9icm93c2VyLXN0YXJ0ZXInO1xuXG5cbmNvbnN0IGJyb3dzZXJTdGFydGVyID0gbmV3IEJyb3dzZXJTdGFydGVyKCk7XG5cbmZ1bmN0aW9uIGNvcnJlY3RPcGVuUGFyYW1ldGVyc0Zvck1hYyAocGFyYW1ldGVycykge1xuICAgIHBhcmFtZXRlcnMubWFjT3BlbkNtZFRlbXBsYXRlID0gcGFyYW1ldGVycy5tYWNPcGVuQ21kVGVtcGxhdGVcbiAgICAgICAgLnJlcGxhY2UoJ29wZW4nLCAnb3BlbiAtbicpXG4gICAgICAgIC5yZXBsYWNlKCcge3t7cGFnZVVybH19fScsICcnKTtcblxuICAgIHBhcmFtZXRlcnMubWFjT3BlbkNtZFRlbXBsYXRlICs9ICcge3t7cGFnZVVybH19fSc7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRmlyZWZveEFyZ3MgKGNvbmZpZywgcGxhdGZvcm1BcmdzLCB7IG1hcmlvbmV0dGVQb3J0LCB0ZW1wUHJvZmlsZURpciB9KSB7XG4gICAgcmV0dXJuIFtdXG4gICAgICAgIC5jb25jYXQoXG4gICAgICAgICAgICBtYXJpb25ldHRlUG9ydCA/IFsnLW1hcmlvbmV0dGUnXSA6IFtdLFxuICAgICAgICAgICAgIWNvbmZpZy51c2VyUHJvZmlsZSA/IFsnLW5vLXJlbW90ZScsICctbmV3LWluc3RhbmNlJywgYC1wcm9maWxlIFwiJHt0ZW1wUHJvZmlsZURpci5wYXRofVwiYF0gOiBbXSxcbiAgICAgICAgICAgIGNvbmZpZy5oZWFkbGVzcyA/IFsnLWhlYWRsZXNzJ10gOiBbXSxcbiAgICAgICAgICAgIGNvbmZpZy51c2VyQXJncyA/IFtjb25maWcudXNlckFyZ3NdIDogW10sXG4gICAgICAgICAgICBwbGF0Zm9ybUFyZ3MgPyBbcGxhdGZvcm1BcmdzXSA6IFtdXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0IChwYWdlVXJsLCBydW50aW1lSW5mbykge1xuICAgIGNvbnN0IHsgYnJvd3Nlck5hbWUsIGNvbmZpZyB9ID0gcnVudGltZUluZm87XG5cbiAgICBjb25zdCBmaXJlZm94SW5mbyAgICAgICAgICAgPSBhd2FpdCBicm93c2VyVG9vbHMuZ2V0QnJvd3NlckluZm8oY29uZmlnLnBhdGggfHwgYnJvd3Nlck5hbWUpO1xuICAgIGNvbnN0IGZpcmVmb3hPcGVuUGFyYW1ldGVycyA9IE9iamVjdC5hc3NpZ24oe30sIGZpcmVmb3hJbmZvKTtcblxuICAgIGlmIChPUy5tYWMgJiYgIWNvbmZpZy51c2VyUHJvZmlsZSlcbiAgICAgICAgY29ycmVjdE9wZW5QYXJhbWV0ZXJzRm9yTWFjKGZpcmVmb3hPcGVuUGFyYW1ldGVycyk7XG5cbiAgICBmaXJlZm94T3BlblBhcmFtZXRlcnMuY21kID0gYnVpbGRGaXJlZm94QXJncyhjb25maWcsIGZpcmVmb3hPcGVuUGFyYW1ldGVycy5jbWQsIHJ1bnRpbWVJbmZvLCBydW50aW1lSW5mby5uZXdJbnN0YW5jZSk7XG5cbiAgICBhd2FpdCBicm93c2VyU3RhcnRlci5zdGFydEJyb3dzZXIoZmlyZWZveE9wZW5QYXJhbWV0ZXJzLCBwYWdlVXJsKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0b3AgKHsgYnJvd3NlcklkIH0pIHtcbiAgICBhd2FpdCBraWxsQnJvd3NlclByb2Nlc3MoYnJvd3NlcklkKTtcbn1cbiJdfQ==