UNPKG

@applitools/eyes-storybook

Version:
79 lines (74 loc) 2.89 kB
'use strict'; const yargs = require('yargs'); const VERSION = require('../package.json').version; const processResults = require('./processResults'); const yargsOptions = require('./yargsOptions'); const {makeTiming} = require('@applitools/monitoring-commons'); const handleJsonFile = require('./handleJsonFile'); const handleTapFile = require('./handleTapFile'); const handleXmlFile = require('./handleXmlFile'); const {getConfigAndLogger} = require('./getConfigAndLogger'); const {presult} = require('@applitools/functional-commons'); const chalk = require('chalk'); const utils = require('@applitools/utils'); const {EyesError} = require('@applitools/eyes'); const eyesStorybook = require('./eyesStorybook'); const {performance, timeItAsync} = makeTiming(); (async function () { try { const argv = yargs .usage('Usage: $0 [options]') .epilogue('Check our documentation here: https://applitools.com/resources/tutorial') .showHelpOnFail(false, 'Specify --help for available options') .version('version', 'Show the version number', `Version ${VERSION}`) .alias('version', 'v') .wrap(yargs.terminalWidth()) .options(yargsOptions).argv; console.log(`Using @applitools/eyes-storybook version ${VERSION}.\n`); const {config, logger} = await getConfigAndLogger(argv); if (config.shard) { console.log(`Running with shard: ${config.shard.current}/${config.shard.total}`); // Log concurrency and shard configuration to console if (config.testConcurrency && config.testConcurrency !== 5) { console.log(`this shard has concurrency of ${config.testConcurrency} parallel tests`); } } const [err, results] = await presult( timeItAsync('eyesStorybook', () => eyesStorybook({config, logger, performance, timeItAsync})), ); if (utils.general.getEnvValue('OFFLINE_LOCATION_PATH')) { process.exit(); } else if (err) { console.log(chalk.red(err.message)); process.exit(config.exitcode ? 1 : 0); } else { const totalTime = performance['eyesStorybook']; const {exitCode, summary, outputStr} = processResults({ results, totalTime, testConcurrency: config.testConcurrency, saveNewTests: config.saveNewTests, saveDiffs: config.saveDiffs, configExitCode: config.exitcode, }); console.log(outputStr); if (config.jsonFilePath) { handleJsonFile(config.jsonFilePath, summary); } if (config.tapFilePath) { handleTapFile(config.tapFilePath, summary); } if (config.xmlFilePath) { handleXmlFile(config.xmlFilePath, summary, {totalTime}); } process.exit(exitCode); } } catch (ex) { if (utils.types.instanceOf(ex, EyesError)) { console.log(ex.message); } else { console.log(ex); } process.exit(1); } })();