creevey
Version:
creevey is a tool for automated visual testing, that tightly integrated with storybook
76 lines (62 loc) • 7.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.readConfig = readConfig;
exports.defaultConfig = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var _utils = require("./utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const defaultConfig = {
storybookUrl: 'http://localhost:6006',
screenDir: _path.default.resolve('images'),
reportDir: _path.default.resolve('report'),
storybookDir: _path.default.resolve('.storybook'),
enableFastStoriesLoading: false,
maxRetries: 0,
diffOptions: {
threshold: 0,
includeAA: true
},
browsers: {
chrome: true
}
};
exports.defaultConfig = defaultConfig;
function normalizeBrowserConfig(name, config) {
if (typeof config == 'boolean') return {
browserName: name
};
if (typeof config == 'string') return {
browserName: config
};
return config;
}
function readConfig(configPath, options) {
const userConfig = { ...defaultConfig
};
const {
dir: configDir,
base: configFile
} = _path.default.parse(configPath);
if (_fs.default.readdirSync(configDir).find(filename => filename.startsWith(configFile))) {
Object.assign(userConfig, (0, _utils.requireConfig)(configPath));
}
if (options.gridUrl) userConfig.gridUrl = options.gridUrl;
if (options.reportDir) userConfig.reportDir = _path.default.resolve(options.reportDir);
if (options.screenDir) userConfig.screenDir = _path.default.resolve(options.screenDir);
const {
gridUrl
} = userConfig;
if (!gridUrl) {
console.log('Please specify `gridUrl`');
process.exit(-1);
} // NOTE: Hack to pass typescript checking
const config = { ...userConfig,
gridUrl
};
Object.entries(config.browsers).forEach(([browser, browserConfig]) => config.browsers[browser] = normalizeBrowserConfig(browser, browserConfig));
return config;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOlsiZGVmYXVsdENvbmZpZyIsInN0b3J5Ym9va1VybCIsInNjcmVlbkRpciIsInBhdGgiLCJyZXNvbHZlIiwicmVwb3J0RGlyIiwic3Rvcnlib29rRGlyIiwiZW5hYmxlRmFzdFN0b3JpZXNMb2FkaW5nIiwibWF4UmV0cmllcyIsImRpZmZPcHRpb25zIiwidGhyZXNob2xkIiwiaW5jbHVkZUFBIiwiYnJvd3NlcnMiLCJjaHJvbWUiLCJub3JtYWxpemVCcm93c2VyQ29uZmlnIiwibmFtZSIsImNvbmZpZyIsImJyb3dzZXJOYW1lIiwicmVhZENvbmZpZyIsImNvbmZpZ1BhdGgiLCJvcHRpb25zIiwidXNlckNvbmZpZyIsImRpciIsImNvbmZpZ0RpciIsImJhc2UiLCJjb25maWdGaWxlIiwicGFyc2UiLCJmcyIsInJlYWRkaXJTeW5jIiwiZmluZCIsImZpbGVuYW1lIiwic3RhcnRzV2l0aCIsIk9iamVjdCIsImFzc2lnbiIsImdyaWRVcmwiLCJjb25zb2xlIiwibG9nIiwicHJvY2VzcyIsImV4aXQiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImJyb3dzZXIiLCJicm93c2VyQ29uZmlnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUNBOztBQUVBOzs7O0FBRU8sTUFBTUEsYUFBc0MsR0FBRztBQUNwREMsRUFBQUEsWUFBWSxFQUFFLHVCQURzQztBQUVwREMsRUFBQUEsU0FBUyxFQUFFQyxjQUFLQyxPQUFMLENBQWEsUUFBYixDQUZ5QztBQUdwREMsRUFBQUEsU0FBUyxFQUFFRixjQUFLQyxPQUFMLENBQWEsUUFBYixDQUh5QztBQUlwREUsRUFBQUEsWUFBWSxFQUFFSCxjQUFLQyxPQUFMLENBQWEsWUFBYixDQUpzQztBQUtwREcsRUFBQUEsd0JBQXdCLEVBQUUsS0FMMEI7QUFNcERDLEVBQUFBLFVBQVUsRUFBRSxDQU53QztBQU9wREMsRUFBQUEsV0FBVyxFQUFFO0FBQUVDLElBQUFBLFNBQVMsRUFBRSxDQUFiO0FBQWdCQyxJQUFBQSxTQUFTLEVBQUU7QUFBM0IsR0FQdUM7QUFRcERDLEVBQUFBLFFBQVEsRUFBRTtBQUFFQyxJQUFBQSxNQUFNLEVBQUU7QUFBVjtBQVIwQyxDQUEvQzs7O0FBV1AsU0FBU0Msc0JBQVQsQ0FBZ0NDLElBQWhDLEVBQThDQyxNQUE5QyxFQUE4RTtBQUM1RSxNQUFJLE9BQU9BLE1BQVAsSUFBaUIsU0FBckIsRUFBZ0MsT0FBTztBQUFFQyxJQUFBQSxXQUFXLEVBQUVGO0FBQWYsR0FBUDtBQUNoQyxNQUFJLE9BQU9DLE1BQVAsSUFBaUIsUUFBckIsRUFBK0IsT0FBTztBQUFFQyxJQUFBQSxXQUFXLEVBQUVEO0FBQWYsR0FBUDtBQUMvQixTQUFPQSxNQUFQO0FBQ0Q7O0FBRU0sU0FBU0UsVUFBVCxDQUFvQkMsVUFBcEIsRUFBd0NDLE9BQXhDLEVBQWtFO0FBQ3ZFLFFBQU1DLFVBQW1FLEdBQUcsRUFBRSxHQUFHckI7QUFBTCxHQUE1RTs7QUFFQSxRQUFNO0FBQUVzQixJQUFBQSxHQUFHLEVBQUVDLFNBQVA7QUFBa0JDLElBQUFBLElBQUksRUFBRUM7QUFBeEIsTUFBdUN0QixjQUFLdUIsS0FBTCxDQUFXUCxVQUFYLENBQTdDOztBQUNBLE1BQUlRLFlBQUdDLFdBQUgsQ0FBZUwsU0FBZixFQUEwQk0sSUFBMUIsQ0FBZ0NDLFFBQUQsSUFBY0EsUUFBUSxDQUFDQyxVQUFULENBQW9CTixVQUFwQixDQUE3QyxDQUFKLEVBQW1GO0FBQ2pGTyxJQUFBQSxNQUFNLENBQUNDLE1BQVAsQ0FBY1osVUFBZCxFQUEwQiwwQkFBc0JGLFVBQXRCLENBQTFCO0FBQ0Q7O0FBRUQsTUFBSUMsT0FBTyxDQUFDYyxPQUFaLEVBQXFCYixVQUFVLENBQUNhLE9BQVgsR0FBcUJkLE9BQU8sQ0FBQ2MsT0FBN0I7QUFDckIsTUFBSWQsT0FBTyxDQUFDZixTQUFaLEVBQXVCZ0IsVUFBVSxDQUFDaEIsU0FBWCxHQUF1QkYsY0FBS0MsT0FBTCxDQUFhZ0IsT0FBTyxDQUFDZixTQUFyQixDQUF2QjtBQUN2QixNQUFJZSxPQUFPLENBQUNsQixTQUFaLEVBQXVCbUIsVUFBVSxDQUFDbkIsU0FBWCxHQUF1QkMsY0FBS0MsT0FBTCxDQUFhZ0IsT0FBTyxDQUFDbEIsU0FBckIsQ0FBdkI7QUFFdkIsUUFBTTtBQUFFZ0MsSUFBQUE7QUFBRixNQUFjYixVQUFwQjs7QUFFQSxNQUFJLENBQUNhLE9BQUwsRUFBYztBQUNaQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSwwQkFBWjtBQUNBQyxJQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYSxDQUFDLENBQWQ7QUFDRCxHQWpCc0UsQ0FtQnZFOzs7QUFDQSxRQUFNdEIsTUFBYyxHQUFHLEVBQUUsR0FBR0ssVUFBTDtBQUFpQmEsSUFBQUE7QUFBakIsR0FBdkI7QUFFQUYsRUFBQUEsTUFBTSxDQUFDTyxPQUFQLENBQWV2QixNQUFNLENBQUNKLFFBQXRCLEVBQWdDNEIsT0FBaEMsQ0FDRSxDQUFDLENBQUNDLE9BQUQsRUFBVUMsYUFBVixDQUFELEtBQStCMUIsTUFBTSxDQUFDSixRQUFQLENBQWdCNkIsT0FBaEIsSUFBMkIzQixzQkFBc0IsQ0FBQzJCLE9BQUQsRUFBVUMsYUFBVixDQURsRjtBQUlBLFNBQU8xQixNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb25maWcsIEJyb3dzZXIsIEJyb3dzZXJDb25maWcsIE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHJlcXVpcmVDb25maWcgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWc6IE9taXQ8Q29uZmlnLCAnZ3JpZFVybCc+ID0ge1xuICBzdG9yeWJvb2tVcmw6ICdodHRwOi8vbG9jYWxob3N0OjYwMDYnLFxuICBzY3JlZW5EaXI6IHBhdGgucmVzb2x2ZSgnaW1hZ2VzJyksXG4gIHJlcG9ydERpcjogcGF0aC5yZXNvbHZlKCdyZXBvcnQnKSxcbiAgc3Rvcnlib29rRGlyOiBwYXRoLnJlc29sdmUoJy5zdG9yeWJvb2snKSxcbiAgZW5hYmxlRmFzdFN0b3JpZXNMb2FkaW5nOiBmYWxzZSxcbiAgbWF4UmV0cmllczogMCxcbiAgZGlmZk9wdGlvbnM6IHsgdGhyZXNob2xkOiAwLCBpbmNsdWRlQUE6IHRydWUgfSxcbiAgYnJvd3NlcnM6IHsgY2hyb21lOiB0cnVlIH0sXG59O1xuXG5mdW5jdGlvbiBub3JtYWxpemVCcm93c2VyQ29uZmlnKG5hbWU6IHN0cmluZywgY29uZmlnOiBCcm93c2VyKTogQnJvd3NlckNvbmZpZyB7XG4gIGlmICh0eXBlb2YgY29uZmlnID09ICdib29sZWFuJykgcmV0dXJuIHsgYnJvd3Nlck5hbWU6IG5hbWUgfTtcbiAgaWYgKHR5cGVvZiBjb25maWcgPT0gJ3N0cmluZycpIHJldHVybiB7IGJyb3dzZXJOYW1lOiBjb25maWcgfTtcbiAgcmV0dXJuIGNvbmZpZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb25maWcoY29uZmlnUGF0aDogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zKTogQ29uZmlnIHtcbiAgY29uc3QgdXNlckNvbmZpZzogdHlwZW9mIGRlZmF1bHRDb25maWcgJiBQYXJ0aWFsPFBpY2s8Q29uZmlnLCAnZ3JpZFVybCc+PiA9IHsgLi4uZGVmYXVsdENvbmZpZyB9O1xuXG4gIGNvbnN0IHsgZGlyOiBjb25maWdEaXIsIGJhc2U6IGNvbmZpZ0ZpbGUgfSA9IHBhdGgucGFyc2UoY29uZmlnUGF0aCk7XG4gIGlmIChmcy5yZWFkZGlyU3luYyhjb25maWdEaXIpLmZpbmQoKGZpbGVuYW1lKSA9PiBmaWxlbmFtZS5zdGFydHNXaXRoKGNvbmZpZ0ZpbGUpKSkge1xuICAgIE9iamVjdC5hc3NpZ24odXNlckNvbmZpZywgcmVxdWlyZUNvbmZpZzxDb25maWc+KGNvbmZpZ1BhdGgpKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmdyaWRVcmwpIHVzZXJDb25maWcuZ3JpZFVybCA9IG9wdGlvbnMuZ3JpZFVybDtcbiAgaWYgKG9wdGlvbnMucmVwb3J0RGlyKSB1c2VyQ29uZmlnLnJlcG9ydERpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJlcG9ydERpcik7XG4gIGlmIChvcHRpb25zLnNjcmVlbkRpcikgdXNlckNvbmZpZy5zY3JlZW5EaXIgPSBwYXRoLnJlc29sdmUob3B0aW9ucy5zY3JlZW5EaXIpO1xuXG4gIGNvbnN0IHsgZ3JpZFVybCB9ID0gdXNlckNvbmZpZztcblxuICBpZiAoIWdyaWRVcmwpIHtcbiAgICBjb25zb2xlLmxvZygnUGxlYXNlIHNwZWNpZnkgYGdyaWRVcmxgJyk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuXG4gIC8vIE5PVEU6IEhhY2sgdG8gcGFzcyB0eXBlc2NyaXB0IGNoZWNraW5nXG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0geyAuLi51c2VyQ29uZmlnLCBncmlkVXJsIH07XG5cbiAgT2JqZWN0LmVudHJpZXMoY29uZmlnLmJyb3dzZXJzKS5mb3JFYWNoKFxuICAgIChbYnJvd3NlciwgYnJvd3NlckNvbmZpZ10pID0+IChjb25maWcuYnJvd3NlcnNbYnJvd3Nlcl0gPSBub3JtYWxpemVCcm93c2VyQ29uZmlnKGJyb3dzZXIsIGJyb3dzZXJDb25maWcpKSxcbiAgKTtcblxuICByZXR1cm4gY29uZmlnO1xufVxuIl19