UNPKG

aye-spy

Version:
118 lines (85 loc) 3.91 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchRemoteComparisonImages = exports.clearDirectories = exports.createDirectories = exports.createComparisons = exports.createBucket = undefined; var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _looksSame = require('looks-same'); var _looksSame2 = _interopRequireDefault(_looksSame); var _util = require('util'); var _remoteActions = require('./remoteActions'); var _createDiffs = require('./createDiffs'); var _createDiffs2 = _interopRequireDefault(_createDiffs); var _comparisonDataConstructor = require('./comparisonDataConstructor'); var _comparisonDataConstructor2 = _interopRequireDefault(_comparisonDataConstructor); var _comparer = require('./comparer'); var _comparer2 = _interopRequireDefault(_comparer); var _logger = require('./logger'); var _logger2 = _interopRequireDefault(_logger); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const createBucket = async config => { if (config.remote) { await (0, _remoteActions.createRemote)(config).then(async () => { _logger2.default.info('comparison-actions', `${config.remoteBucketName} bucket has been created`); await (0, _remoteActions.updateRemotePolicy)(config); }).catch(() => { _logger2.default.info('comparison-actions', 'Bucket already created'); }); } }; const createComparisons = async (fs, config, reporter) => { const comparisonData = await (0, _comparisonDataConstructor2.default)(fs, config); const looksSameAsync = (0, _util.promisify)(_looksSame2.default); for (let i = 0; i < comparisonData.length; i++) { const scenario = comparisonData[i]; const equal = await (0, _comparer2.default)(scenario, looksSameAsync); if (equal) { reporter.pass(scenario.label); } else { reporter.fail(scenario.label); await (0, _createDiffs2.default)(scenario, _looksSame.createDiff); } } if (config.remote) await (0, _remoteActions.uploadRemoteKeys)('generatedDiffs', config).then(() => _logger2.default.info('upload-remote', 'Files uploaded successfully ✅')).catch(error => _logger2.default.error('upload-remote', `Error uploading files ❌ ${error}`)); reporter.generateReport(); }; const createDirectories = (fs, config) => new Promise(resolve => { const directories = []; directories.push(config.latest, config.generatedDiffs, config.baseline); directories.forEach(dir => { const directoryExists = fs.existsSync(dir) ? true : false; if (!directoryExists) fs.mkdirSync(dir); }); resolve(); }); const clearDirectories = (fs, config) => new Promise(resolve => { const diffsPath = _path2.default.resolve(config.generatedDiffs); const reportPath = _path2.default.resolve(config.report); [diffsPath, reportPath].forEach(dir => { const directoryExists = fs.existsSync(dir) ? true : false; if (directoryExists) { fs.readdirSync(dir).forEach(file => { fs.unlinkSync(`${dir}/${file}`); }); } }); resolve(); }); const fetchRemoteComparisonImages = async config => { if (config.remote) { await (0, _remoteActions.deleteRemoteKeys)('generatedDiffs', config); _logger2.default.info('comparisonActions', 'Getting baseline images from S3...'); const promises = []; config.scenarios.map(scenario => scenario.viewports.map(viewport => { const fetchRemotePromise = (0, _remoteActions.fetchRemoteKeys)(config, 'baseline', `${scenario.label}-${viewport.label}.png`); promises.push(fetchRemotePromise); })); return Promise.all(promises); } }; exports.createBucket = createBucket; exports.createComparisons = createComparisons; exports.createDirectories = createDirectories; exports.clearDirectories = clearDirectories; exports.fetchRemoteComparisonImages = fetchRemoteComparisonImages;