testcafe
Version:
Automated browser testing for the modern web development stack.
37 lines • 6.44 kB
JavaScript
;
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==