UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

43 lines 6.05 kB
"use strict"; 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