aye-spy
Version:
A visual regression tool
70 lines (53 loc) • 2.33 kB
JavaScript
;
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', 'remoteBucketAccess'];
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 || scenario.chromeCustomCapabilites)) {
_logger2.default.info('configValidator', `❗️ ${config.browser} not supported on the mobile emulator / custom capabilities. 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;