UNPKG

aye-spy

Version:
70 lines (53 loc) 2.25 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.isMobileConfigValid = exports.isRemoteConfigValid = exports.isLocalConfigValid = undefined; var _logger = require('./logger'); var _logger2 = _interopRequireDefault(_logger); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const mandatoryLocalFields = ['gridUrl', 'baseline', 'latest', 'generatedDiffs', 'report', 'scenarios', 'browser']; const mandatoryRemoteFields = ['remoteBucketName', 'remoteRegion']; function isValid(missingConfigFields) { if (missingConfigFields.length > 0) { _logger2.default.info('configValidator', `❗️ Please add missing mandatory fields to your config: \n${missingConfigFields.toString()}`); return false; } return true; } function isRemoteConfigValid(config) { const missingConfigFields = mandatoryRemoteFields.filter(field => !config[field]); return isValid(missingConfigFields); } function isLocalConfigValid(config) { const missingConfigFields = mandatoryLocalFields.filter(field => !config[field]); return isValid(missingConfigFields); } function isMobileConfigValid(config) { let isMobileConfigCorrect = true; config.scenarios.forEach(scenario => { if (config.browser !== 'chrome' && scenario.mobileDeviceName) { _logger2.default.info('configValidator', `❗️ ${config.browser} not supported on the mobile emulator. Please change your browser to chrome.`); isMobileConfigCorrect = false; } }); return isMobileConfigCorrect; } const validateConfig = (config, isRemote) => new Promise(resolve => { let isRemoteConfigCorrect = true; if (isRemote) { isRemoteConfigCorrect = isRemoteConfigValid(config); } if (isLocalConfigValid(config) && isRemoteConfigCorrect && isMobileConfigValid(config)) { _logger2.default.info('configValidator', 'Config validated ✅'); resolve(); } else { _logger2.default.info('configValidator', 'Exiting Aye Spy'); process.exitCode = 1; process.exit(); } }); exports.default = validateConfig; exports.isLocalConfigValid = isLocalConfigValid; exports.isRemoteConfigValid = isRemoteConfigValid; exports.isMobileConfigValid = isMobileConfigValid;