UNPKG

@applitools/eyes-storybook

Version:
76 lines (73 loc) 2.94 kB
'use strict'; const yargs = require('yargs'); const {makeLogger} = require('@applitools/logger'); const {configParams: externalConfigParams} = require('./configParams'); const VERSION = require('../package.json').version; const eyesStorybook = require('./eyesStorybook'); const processResults = require('./processResults'); const validateAndPopulateConfig = require('./validateAndPopulateConfig'); const yargsOptions = require('./yargsOptions'); const {generateConfig} = require('./generateConfig'); const defaultConfig = require('./defaultConfig'); const configDigest = require('./configDigest'); const {makeTiming} = require('@applitools/monitoring-commons'); const handleJsonFile = require('./handleJsonFile'); const handleTapFile = require('./handleTapFile'); const handleXmlFile = require('./handleXmlFile'); const {presult} = require('@applitools/functional-commons'); const chalk = require('chalk'); const utils = require('@applitools/utils'); 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 = generateConfig({argv, defaultConfig, externalConfigParams}); const logger = makeLogger({level: config.showLogs ? 'info' : 'silent', label: 'eyes'}); await validateAndPopulateConfig({ config, logger, packagePath: process.cwd(), }); logger.log(`Running with the following config:\n${configDigest(config)}`); 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, 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) { console.log(ex); process.exit(1); } })();