testcafe
Version:
Automated browser testing for the modern web development stack.
43 lines • 6.05 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const pinkie_1 = __importDefault(require("pinkie"));
const lodash_1 = require("lodash");
const option_names_1 = __importDefault(require("../configuration/option-names"));
const runtime_1 = require("../errors/runtime");
// NOTE: Load the provider pool lazily to reduce startup time
const lazyRequire = require('import-lazy')(require);
const browserProviderPool = lazyRequire('../browser/provider/pool');
async function getBrowserInfo(browser) {
try {
return {
error: null,
info: await browserProviderPool.getBrowserInfo(browser)
};
}
catch (err) {
return {
error: err,
info: null
};
}
}
async function default_1(args, configuration) {
const browsersOption = configuration.getOption(option_names_1.default.browsers);
if (!args.browsers || !args.browsers.length)
return { browsers: [], sources: args.src };
if (!browsersOption || !browsersOption.length)
return { browsers: args.browsers, sources: args.src };
const browserInfo = await pinkie_1.default.all(args.browsers.map(browser => getBrowserInfo(browser)));
const [parsedInfo, failedInfo] = lodash_1.partition(browserInfo, info => !info.error);
if (parsedInfo.length === browserInfo.length)
return { browsers: args.browsers, sources: args.src };
if (!parsedInfo.length)
return { browsers: [], sources: [args.args[0], ...args.src] };
throw new runtime_1.CompositeError(failedInfo.map(info => info.error));
}
exports.default = default_1;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVjdC1icm93c2Vycy1hbmQtc291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGkvY29ycmVjdC1icm93c2Vycy1hbmQtc291cmNlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE2QjtBQUM3QixtQ0FBbUM7QUFDbkMsaUZBQXlEO0FBQ3pELCtDQUFtRDtBQUVuRCw2REFBNkQ7QUFDN0QsTUFBTSxXQUFXLEdBQVcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVELE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFHcEUsS0FBSyxVQUFVLGNBQWMsQ0FBRSxPQUFPO0lBQ2xDLElBQUk7UUFDQSxPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUcsTUFBTSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1NBQzNELENBQUM7S0FDTDtJQUNELE9BQU8sR0FBRyxFQUFFO1FBQ1IsT0FBTztZQUNILEtBQUssRUFBRSxHQUFHO1lBQ1YsSUFBSSxFQUFHLElBQUk7U0FDZCxDQUFDO0tBQ0w7QUFDTCxDQUFDO0FBRWMsS0FBSyxvQkFBVyxJQUFJLEVBQUUsYUFBYTtJQUM5QyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLHNCQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07UUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUUvQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU07UUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFMUQsTUFBTSxXQUFXLEdBQWdCLE1BQU0sZ0JBQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEdBQUcsa0JBQVMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU3RSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLE1BQU07UUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUVsRSxNQUFNLElBQUksd0JBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQW5CRCw0QkFtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZSBmcm9tICdwaW5raWUnO1xuaW1wb3J0IHsgcGFydGl0aW9uIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBPUFRJT05fTkFNRVMgZnJvbSAnLi4vY29uZmlndXJhdGlvbi9vcHRpb24tbmFtZXMnO1xuaW1wb3J0IHsgQ29tcG9zaXRlRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvcnVudGltZSc7XG5cbi8vIE5PVEU6IExvYWQgdGhlIHByb3ZpZGVyIHBvb2wgbGF6aWx5IHRvIHJlZHVjZSBzdGFydHVwIHRpbWVcbmNvbnN0IGxhenlSZXF1aXJlICAgICAgICAgPSByZXF1aXJlKCdpbXBvcnQtbGF6eScpKHJlcXVpcmUpO1xuY29uc3QgYnJvd3NlclByb3ZpZGVyUG9vbCA9IGxhenlSZXF1aXJlKCcuLi9icm93c2VyL3Byb3ZpZGVyL3Bvb2wnKTtcblxuXG5hc3luYyBmdW5jdGlvbiBnZXRCcm93c2VySW5mbyAoYnJvd3Nlcikge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgIGluZm86ICBhd2FpdCBicm93c2VyUHJvdmlkZXJQb29sLmdldEJyb3dzZXJJbmZvKGJyb3dzZXIpXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgICAgICBpbmZvOiAgbnVsbFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gKGFyZ3MsIGNvbmZpZ3VyYXRpb24pIHtcbiAgICBjb25zdCBicm93c2Vyc09wdGlvbiA9IGNvbmZpZ3VyYXRpb24uZ2V0T3B0aW9uKE9QVElPTl9OQU1FUy5icm93c2Vycyk7XG5cbiAgICBpZiAoIWFyZ3MuYnJvd3NlcnMgfHwgIWFyZ3MuYnJvd3NlcnMubGVuZ3RoKVxuICAgICAgICByZXR1cm4geyBicm93c2VyczogW10sIHNvdXJjZXM6IGFyZ3Muc3JjIH07XG5cbiAgICBpZiAoIWJyb3dzZXJzT3B0aW9uIHx8ICFicm93c2Vyc09wdGlvbi5sZW5ndGgpXG4gICAgICAgIHJldHVybiB7IGJyb3dzZXJzOiBhcmdzLmJyb3dzZXJzLCBzb3VyY2VzOiBhcmdzLnNyYyB9O1xuXG4gICAgY29uc3QgYnJvd3NlckluZm8gICAgICAgICAgICAgID0gYXdhaXQgUHJvbWlzZS5hbGwoYXJncy5icm93c2Vycy5tYXAoYnJvd3NlciA9PiBnZXRCcm93c2VySW5mbyhicm93c2VyKSkpO1xuICAgIGNvbnN0IFtwYXJzZWRJbmZvLCBmYWlsZWRJbmZvXSA9IHBhcnRpdGlvbihicm93c2VySW5mbywgaW5mbyA9PiAhaW5mby5lcnJvcik7XG5cbiAgICBpZiAocGFyc2VkSW5mby5sZW5ndGggPT09IGJyb3dzZXJJbmZvLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIHsgYnJvd3NlcnM6IGFyZ3MuYnJvd3NlcnMsIHNvdXJjZXM6IGFyZ3Muc3JjIH07XG5cbiAgICBpZiAoIXBhcnNlZEluZm8ubGVuZ3RoKVxuICAgICAgICByZXR1cm4geyBicm93c2VyczogW10sIHNvdXJjZXM6IFthcmdzLmFyZ3NbMF0sIC4uLmFyZ3Muc3JjXSB9O1xuXG4gICAgdGhyb3cgbmV3IENvbXBvc2l0ZUVycm9yKGZhaWxlZEluZm8ubWFwKGluZm8gPT4gaW5mby5lcnJvcikpO1xufVxuIl19