UNPKG

@redocly/respect-core

Version:
48 lines 2.33 kB
import { outdent } from 'outdent'; import { yellow, inverse, bold, green, red, blue, gray } from 'colorette'; import * as path from 'node:path'; import { getExecutionTime } from '../../utils/time.js'; import { calculateTotals } from './calculate-tests-passed.js'; import { indent } from './helpers.js'; import { resolveRunningWorkflows } from '../flow-runner/index.js'; export function displaySummary({ startedAt, workflows, options, }) { const { logger } = options; const fileName = path.basename(options?.file || ''); const workflowArgv = resolveRunningWorkflows(options?.workflow) || []; const skippedWorkflowArgv = resolveRunningWorkflows(options?.skip) || []; let executedWorkflows = workflowArgv && workflowArgv.length ? workflows.filter(({ workflowId }) => workflowArgv.includes(workflowId)) : workflows; executedWorkflows = skippedWorkflowArgv && skippedWorkflowArgv.length ? executedWorkflows.filter(({ workflowId }) => !skippedWorkflowArgv.includes(workflowId)) : executedWorkflows; const totals = calculateTotals(executedWorkflows); const executionTime = getExecutionTime(startedAt); logger.printNewLine(); logger.output(outdent ` ${yellow(indent(`Summary for ${blue(fileName)}`, 2))} ${indent('', 2)} ${indent(formatWorkflowsTotals('Workflows:', totals.workflows), 2)} ${indent(formatTotals('Steps:', totals.steps), 2)} ${indent(formatTotals('Checks:', totals.checks), 2)} ${indent(inverse(`Time: ${executionTime}`), 2)} `); logger.printNewLine(); logger.printNewLine(); } function formatWorkflowsTotals(header, totals) { return (bold(header) + (totals.passed ? ` ${green(totals.passed + ' passed')},` : '') + (totals.failed ? ` ${red(totals.failed + ' failed')},` : '') + ` ${totals.total} total`); } function formatTotals(header, totals) { return (bold(header) + (totals.passed ? ` ${green(totals.passed + ' passed')},` : '') + (totals.failed ? ` ${red(totals.failed + ' failed')},` : '') + (totals.warnings ? ` ${yellow(totals.warnings + ' warnings')},` : '') + (totals.skipped ? ` ${gray(totals.skipped + ' ignored')},` : '') + ` ${totals.total} total`); } //# sourceMappingURL=display-summary.js.map