UNPKG

testplane

Version:

Tests framework based on mocha and wdio

114 lines 4.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.extractSelectivityEnabledEnvVariable = exports.addUserAgentToArgs = exports.parsePrimitive = exports.parseBoolean = exports.assertPositiveIntegerOrInfinity = exports.assertPositiveInteger = exports.assertEnum = exports.assertNonNegativeInteger = exports.assertOptionalArray = exports.assertOptionalObject = exports.assertNonNegativeNumber = exports.is = void 0; const lodash_1 = __importDefault(require("lodash")); const is = (type, name) => { return (value) => { if (typeof value !== type) { throw new Error(`"${name}" must be a ${type}`); } }; }; exports.is = is; const assertNonNegativeNumber = (value, name) => { (0, exports.is)("number", name)(value); if (value < 0) { throw new Error(`"${name}" must be non-negative`); } }; exports.assertNonNegativeNumber = assertNonNegativeNumber; const assertOptionalObject = (value, name) => { if (!lodash_1.default.isNull(value) && !lodash_1.default.isPlainObject(value)) { throw new Error(`"${name}" must be an object`); } }; exports.assertOptionalObject = assertOptionalObject; const assertOptionalArray = (value, name) => { if (!lodash_1.default.isArray(value)) { throw new Error(`"${name}" must be an array`); } }; exports.assertOptionalArray = assertOptionalArray; const assertNonNegativeInteger = (value, name) => { if (!Number.isInteger(value) || value < 0) { throw new Error(`"${name}" must be a non-negative integer`); } }; exports.assertNonNegativeInteger = assertNonNegativeInteger; const assertEnum = (enumValues, value, name) => { (0, exports.is)("string", name)(value); if (!lodash_1.default.includes(enumValues, value)) { throw new Error(`"${name}" must be one of: ${enumValues.join(", ")}`); } }; exports.assertEnum = assertEnum; const isPositiveInteger = (value) => Number.isInteger(value) && value > 0; const assertPositiveInteger = (value, name) => { if (!isPositiveInteger(value)) { throw new Error(`"${name}" must be a positive integer`); } }; exports.assertPositiveInteger = assertPositiveInteger; const assertPositiveIntegerOrInfinity = (value, name) => { if (!isPositiveInteger(value) && value !== Infinity) { throw new Error(`"${name}" must be a positive integer or Infinity`); } }; exports.assertPositiveIntegerOrInfinity = assertPositiveIntegerOrInfinity; const parseBoolean = (value, name) => { switch (value.toLowerCase()) { case "1": case "yes": case "true": return true; case "0": case "no": case "false": return false; default: throw new Error(`Unexpected value for boolean option "${name}"`); } }; exports.parseBoolean = parseBoolean; const parsePrimitive = (str) => { try { return JSON.parse(str); } catch (error) { throw new Error("a value must be a primitive type"); } }; exports.parsePrimitive = parsePrimitive; const addUserAgentToArgs = (config) => { for (const browserKey in config.browsers) { const browserConfig = config.browsers[browserKey]; const chromeOptions = browserConfig.desiredCapabilities?.["goog:chromeOptions"]; if (chromeOptions?.mobileEmulation?.userAgent) { const userAgent = chromeOptions.mobileEmulation.userAgent; chromeOptions.args = chromeOptions.args || []; const userAgentArg = `user-agent=${userAgent}`; if (!chromeOptions.args.find(arg => arg.startsWith("user-agent="))) { chromeOptions.args.push(userAgentArg); } } } return config; }; exports.addUserAgentToArgs = addUserAgentToArgs; const extractSelectivityEnabledEnvVariable = (envPrefixes = []) => { for (const envPrefix of envPrefixes) { const envName = envPrefix + "selectivity_enabled"; if (process.env[envName] === String(true)) { return { enabled: true }; } if (process.env[envName] === String(false)) { return { enabled: false }; } } return {}; }; exports.extractSelectivityEnabledEnvVariable = extractSelectivityEnabledEnvVariable; //# sourceMappingURL=utils.js.map