UNPKG

skutter

Version:

Skutter: Opinionated BDD Browser based test framework

76 lines (75 loc) 3.82 kB
"use strict"; const chalk = require("chalk"); const reporter_base_1 = require("./reporter-base"); const result_types_1 = require("../result-aggregator/result-types"); class MultiProcessOverviewReporter extends reporter_base_1.ReporterBase { constructor(featureInfoProvider) { super(); this.scenarioPadding = " "; this.featureInfoProvider = featureInfoProvider; } selfUnregister(context) { return context.executorsCount <= 1; } onFeatureSkipped(threadId, featureId) { let feature = this.featureInfoProvider.getFeature(featureId); console.log(`${chalk.gray(threadId.toString())} Skipping: "${chalk.yellow(feature.title)}".`); } onScenarioSkipped(threadId, featureId, scenarioId) { let scenario = this.featureInfoProvider.getScenario(featureId, scenarioId); console.log(`${this.scenarioPadding}${chalk.gray(threadId.toString())} ${chalk.bgBlack("Skipping")} "${scenario.title}".`); } onFeatureStart(threadId, featureId) { let feature = this.featureInfoProvider.getFeature(featureId); console.log(`${chalk.gray(threadId.toString())} Starting: "${chalk.yellow(feature.title)}".`); } ; onScenarioStart(threadId, featureId, scenarioId) { let scenario = this.featureInfoProvider.getScenario(featureId, scenarioId); console.log(`${this.scenarioPadding}${chalk.gray(threadId.toString())} Starting: "${scenario.title}".`); } onScreenshotStep(threadId, featureId, scenarioId, stepId, screenshotFilename) { let scenario = this.featureInfoProvider.getScenario(featureId, scenarioId); console.log(`${this.scenarioPadding}${chalk.gray(threadId.toString())} ${chalk.bgBlack("Screenshotting")} "${scenario.title}".`); } ; onAfterScenario(threadId, featureId, scenarioId, duration, result, scenarioTeardownLog) { let scenario = this.featureInfoProvider.getScenario(featureId, scenarioId); let resultString = ""; switch (result) { case result_types_1.ResultTypes.Passed: resultString = "Passed"; break; case result_types_1.ResultTypes.Errored: resultString = "Errored"; break; case result_types_1.ResultTypes.Failed: resultString = "Failed"; break; } let scenarioResult = result === result_types_1.ResultTypes.Passed ? chalk.green("Passed") : chalk.red(resultString); let scenarioDurationSeconds = scenario.durationMiliseconds / 1000; console.log(`${this.scenarioPadding}${chalk.gray(threadId.toString())} ${scenarioResult} "${scenario.title}", Duration: ${chalk.bgCyan(scenarioDurationSeconds.toFixed(2).toString())}s.`); } ; onAfterFeature(threadId, featureId, duration, result, featureTeardownLog) { let feature = this.featureInfoProvider.getFeature(featureId); let resultString = ""; switch (result) { case result_types_1.ResultTypes.Passed: resultString = "Passed"; break; case result_types_1.ResultTypes.Errored: resultString = "Errored"; break; case result_types_1.ResultTypes.Failed: resultString = "Failed"; break; } let featureResult = result === result_types_1.ResultTypes.Passed ? chalk.green("Passed") : chalk.red(resultString); let featureDurationSeconds = feature.durationMiliseconds / 1000; console.log(`${chalk.gray(threadId.toString())} ${featureResult} "${chalk.yellow(feature.title)}", Duration: ${chalk.bgCyan(featureDurationSeconds.toFixed(2).toString())}s.`); } ; } exports.MultiProcessOverviewReporter = MultiProcessOverviewReporter;