UNPKG

creevey

Version:

creevey is a tool for automated visual testing, that tightly integrated with storybook

55 lines (40 loc) 7.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = update; var _fs = _interopRequireWildcard(require("fs")); var _path = _interopRequireDefault(require("path")); var _types = require("../../types"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const actualRegex = /^(.*)-actual-(\d+)\.png$/i; function approve(dirents, srcPath, dstPath) { dirents.filter(dirent => dirent.isFile()).map(dirent => actualRegex.exec(dirent.name)).filter(_types.isDefined).reduce((images, [, imageName, retry]) => { var _images$get; return Number(retry) > ((_images$get = images.get(imageName)) !== null && _images$get !== void 0 ? _images$get : -1) ? images.set(imageName, Number(retry)) : images; }, new Map()).forEach((retry, imageName) => { (0, _fs.mkdirSync)(dstPath, { recursive: true }); _fs.default.copyFileSync(_path.default.join(srcPath, `${imageName}-actual-${retry}.png`), _path.default.join(dstPath, `${imageName}.png`)); }); } function traverse(srcPath, dstPath) { const dirents = _fs.default.readdirSync(srcPath, { withFileTypes: true }); approve(dirents, srcPath, dstPath); dirents.filter(dirent => dirent.isDirectory()).map(dirent => dirent.name).forEach(dirname => traverse(_path.default.join(srcPath, dirname), _path.default.join(dstPath, dirname))); } function update(config) { const { reportDir, screenDir } = config; _fs.default.readdirSync(reportDir, { withFileTypes: true }).filter(dirent => dirent.isDirectory()).map(dirent => dirent.name).forEach(dirname => traverse(_path.default.join(reportDir, dirname), _path.default.join(screenDir, dirname))); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvbWFzdGVyL3VwZGF0ZS50cyJdLCJuYW1lcyI6WyJhY3R1YWxSZWdleCIsImFwcHJvdmUiLCJkaXJlbnRzIiwic3JjUGF0aCIsImRzdFBhdGgiLCJmaWx0ZXIiLCJkaXJlbnQiLCJpc0ZpbGUiLCJtYXAiLCJleGVjIiwibmFtZSIsImlzRGVmaW5lZCIsInJlZHVjZSIsImltYWdlcyIsImltYWdlTmFtZSIsInJldHJ5IiwiTnVtYmVyIiwiZ2V0Iiwic2V0IiwiTWFwIiwiZm9yRWFjaCIsInJlY3Vyc2l2ZSIsImZzIiwiY29weUZpbGVTeW5jIiwicGF0aCIsImpvaW4iLCJ0cmF2ZXJzZSIsInJlYWRkaXJTeW5jIiwid2l0aEZpbGVUeXBlcyIsImlzRGlyZWN0b3J5IiwiZGlybmFtZSIsInVwZGF0ZSIsImNvbmZpZyIsInJlcG9ydERpciIsInNjcmVlbkRpciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVBLE1BQU1BLFdBQVcsR0FBRywyQkFBcEI7O0FBRUEsU0FBU0MsT0FBVCxDQUFpQkMsT0FBakIsRUFBb0NDLE9BQXBDLEVBQXFEQyxPQUFyRCxFQUE0RTtBQUMxRUYsRUFBQUEsT0FBTyxDQUNKRyxNQURILENBQ1dDLE1BQUQsSUFBWUEsTUFBTSxDQUFDQyxNQUFQLEVBRHRCLEVBRUdDLEdBRkgsQ0FFUUYsTUFBRCxJQUFZTixXQUFXLENBQUNTLElBQVosQ0FBaUJILE1BQU0sQ0FBQ0ksSUFBeEIsQ0FGbkIsRUFHR0wsTUFISCxDQUdVTSxnQkFIVixFQUlHQyxNQUpILENBS0ksQ0FBQ0MsTUFBRCxFQUFTLEdBQUdDLFNBQUgsRUFBY0MsS0FBZCxDQUFUO0FBQUE7O0FBQUEsV0FDRUMsTUFBTSxDQUFDRCxLQUFELENBQU4sbUJBQWlCRixNQUFNLENBQUNJLEdBQVAsQ0FBV0gsU0FBWCxDQUFqQixxREFBMEMsQ0FBQyxDQUEzQyxJQUFnREQsTUFBTSxDQUFDSyxHQUFQLENBQVdKLFNBQVgsRUFBc0JFLE1BQU0sQ0FBQ0QsS0FBRCxDQUE1QixDQUFoRCxHQUF1RkYsTUFEekY7QUFBQSxHQUxKLEVBT0ksSUFBSU0sR0FBSixFQVBKLEVBU0dDLE9BVEgsQ0FTVyxDQUFDTCxLQUFELEVBQVFELFNBQVIsS0FBc0I7QUFDN0IsdUJBQVVWLE9BQVYsRUFBbUI7QUFBRWlCLE1BQUFBLFNBQVMsRUFBRTtBQUFiLEtBQW5COztBQUNBQyxnQkFBR0MsWUFBSCxDQUFnQkMsY0FBS0MsSUFBTCxDQUFVdEIsT0FBVixFQUFvQixHQUFFVyxTQUFVLFdBQVVDLEtBQU0sTUFBaEQsQ0FBaEIsRUFBd0VTLGNBQUtDLElBQUwsQ0FBVXJCLE9BQVYsRUFBb0IsR0FBRVUsU0FBVSxNQUFoQyxDQUF4RTtBQUNELEdBWkg7QUFhRDs7QUFFRCxTQUFTWSxRQUFULENBQWtCdkIsT0FBbEIsRUFBbUNDLE9BQW5DLEVBQTBEO0FBQ3hELFFBQU1GLE9BQU8sR0FBR29CLFlBQUdLLFdBQUgsQ0FBZXhCLE9BQWYsRUFBd0I7QUFBRXlCLElBQUFBLGFBQWEsRUFBRTtBQUFqQixHQUF4QixDQUFoQjs7QUFDQTNCLEVBQUFBLE9BQU8sQ0FBQ0MsT0FBRCxFQUFVQyxPQUFWLEVBQW1CQyxPQUFuQixDQUFQO0FBQ0FGLEVBQUFBLE9BQU8sQ0FDSkcsTUFESCxDQUNXQyxNQUFELElBQVlBLE1BQU0sQ0FBQ3VCLFdBQVAsRUFEdEIsRUFFR3JCLEdBRkgsQ0FFUUYsTUFBRCxJQUFZQSxNQUFNLENBQUNJLElBRjFCLEVBR0dVLE9BSEgsQ0FHWVUsT0FBRCxJQUFhSixRQUFRLENBQUNGLGNBQUtDLElBQUwsQ0FBVXRCLE9BQVYsRUFBbUIyQixPQUFuQixDQUFELEVBQThCTixjQUFLQyxJQUFMLENBQVVyQixPQUFWLEVBQW1CMEIsT0FBbkIsQ0FBOUIsQ0FIaEM7QUFJRDs7QUFFYyxTQUFTQyxNQUFULENBQWdCQyxNQUFoQixFQUFzQztBQUNuRCxRQUFNO0FBQUVDLElBQUFBLFNBQUY7QUFBYUMsSUFBQUE7QUFBYixNQUEyQkYsTUFBakM7O0FBRUFWLGNBQUdLLFdBQUgsQ0FBZU0sU0FBZixFQUEwQjtBQUFFTCxJQUFBQSxhQUFhLEVBQUU7QUFBakIsR0FBMUIsRUFDR3ZCLE1BREgsQ0FDV0MsTUFBRCxJQUFZQSxNQUFNLENBQUN1QixXQUFQLEVBRHRCLEVBRUdyQixHQUZILENBRVFGLE1BQUQsSUFBWUEsTUFBTSxDQUFDSSxJQUYxQixFQUdHVSxPQUhILENBR1lVLE9BQUQsSUFBYUosUUFBUSxDQUFDRixjQUFLQyxJQUFMLENBQVVRLFNBQVYsRUFBcUJILE9BQXJCLENBQUQsRUFBZ0NOLGNBQUtDLElBQUwsQ0FBVVMsU0FBVixFQUFxQkosT0FBckIsQ0FBaEMsQ0FIaEM7QUFJRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcywgeyBEaXJlbnQsIG1rZGlyU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ29uZmlnLCBpc0RlZmluZWQgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmNvbnN0IGFjdHVhbFJlZ2V4ID0gL14oLiopLWFjdHVhbC0oXFxkKylcXC5wbmckL2k7XG5cbmZ1bmN0aW9uIGFwcHJvdmUoZGlyZW50czogRGlyZW50W10sIHNyY1BhdGg6IHN0cmluZywgZHN0UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGRpcmVudHNcbiAgICAuZmlsdGVyKChkaXJlbnQpID0+IGRpcmVudC5pc0ZpbGUoKSlcbiAgICAubWFwKChkaXJlbnQpID0+IGFjdHVhbFJlZ2V4LmV4ZWMoZGlyZW50Lm5hbWUpKVxuICAgIC5maWx0ZXIoaXNEZWZpbmVkKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoaW1hZ2VzLCBbLCBpbWFnZU5hbWUsIHJldHJ5XSkgPT5cbiAgICAgICAgTnVtYmVyKHJldHJ5KSA+IChpbWFnZXMuZ2V0KGltYWdlTmFtZSkgPz8gLTEpID8gaW1hZ2VzLnNldChpbWFnZU5hbWUsIE51bWJlcihyZXRyeSkpIDogaW1hZ2VzLFxuICAgICAgbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSxcbiAgICApXG4gICAgLmZvckVhY2goKHJldHJ5LCBpbWFnZU5hbWUpID0+IHtcbiAgICAgIG1rZGlyU3luYyhkc3RQYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGZzLmNvcHlGaWxlU3luYyhwYXRoLmpvaW4oc3JjUGF0aCwgYCR7aW1hZ2VOYW1lfS1hY3R1YWwtJHtyZXRyeX0ucG5nYCksIHBhdGguam9pbihkc3RQYXRoLCBgJHtpbWFnZU5hbWV9LnBuZ2ApKTtcbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gdHJhdmVyc2Uoc3JjUGF0aDogc3RyaW5nLCBkc3RQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgZGlyZW50cyA9IGZzLnJlYWRkaXJTeW5jKHNyY1BhdGgsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcbiAgYXBwcm92ZShkaXJlbnRzLCBzcmNQYXRoLCBkc3RQYXRoKTtcbiAgZGlyZW50c1xuICAgIC5maWx0ZXIoKGRpcmVudCkgPT4gZGlyZW50LmlzRGlyZWN0b3J5KCkpXG4gICAgLm1hcCgoZGlyZW50KSA9PiBkaXJlbnQubmFtZSlcbiAgICAuZm9yRWFjaCgoZGlybmFtZSkgPT4gdHJhdmVyc2UocGF0aC5qb2luKHNyY1BhdGgsIGRpcm5hbWUpLCBwYXRoLmpvaW4oZHN0UGF0aCwgZGlybmFtZSkpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXBkYXRlKGNvbmZpZzogQ29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IHsgcmVwb3J0RGlyLCBzY3JlZW5EaXIgfSA9IGNvbmZpZztcblxuICBmcy5yZWFkZGlyU3luYyhyZXBvcnREaXIsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KVxuICAgIC5maWx0ZXIoKGRpcmVudCkgPT4gZGlyZW50LmlzRGlyZWN0b3J5KCkpXG4gICAgLm1hcCgoZGlyZW50KSA9PiBkaXJlbnQubmFtZSlcbiAgICAuZm9yRWFjaCgoZGlybmFtZSkgPT4gdHJhdmVyc2UocGF0aC5qb2luKHJlcG9ydERpciwgZGlybmFtZSksIHBhdGguam9pbihzY3JlZW5EaXIsIGRpcm5hbWUpKSk7XG59XG4iXX0=