skutter
Version:
Skutter: Opinionated BDD Browser based test framework
38 lines (37 loc) • 2.25 kB
JavaScript
;
const Lazy = require("lazy.js");
const result_types_1 = require("../result-aggregator/result-types");
class RunTotalsCalculator {
static get(results) {
let featureResults = Lazy(results);
let totalFeatures = featureResults.size();
let passedFeatures = featureResults.where((feature) => { return feature.result === result_types_1.ResultTypes.Passed; }).size();
let failedFeatures = featureResults.where((feature) => { return feature.result === result_types_1.ResultTypes.Failed; }).size();
let erroredFeatures = featureResults.where((feature) => { return feature.result === result_types_1.ResultTypes.Errored; }).size();
let skippedFeatures = featureResults.where((feature) => { return feature.result === result_types_1.ResultTypes.Skipped; }).size();
let totalDuration = featureResults.map((featureResult) => { return featureResult.feature.durationMiliseconds; }).sum() / 1000;
let totalScenarios = featureResults.map((feature) => { return feature.getScenarioCount(); }).sum();
let passedScenarios = featureResults.map((feature) => { return feature.getScenarioCount(result_types_1.ResultTypes.Passed); }).sum();
let failedScenarios = featureResults.map((feature) => { return feature.getScenarioCount(result_types_1.ResultTypes.Failed); }).sum();
let erroredScenarios = featureResults.map((feature) => { return feature.getScenarioCount(result_types_1.ResultTypes.Errored); }).sum();
let skippedScenarios = featureResults.map((feature) => { return feature.getScenarioCount(result_types_1.ResultTypes.Skipped); }).sum();
return {
features: {
total: totalFeatures,
passed: passedFeatures,
failed: failedFeatures,
errored: erroredFeatures,
skipped: skippedFeatures,
duration: totalDuration
},
scenarios: {
total: totalScenarios,
passed: passedScenarios,
failed: failedScenarios,
errored: erroredScenarios,
skipped: skippedScenarios
}
};
}
}
exports.RunTotalsCalculator = RunTotalsCalculator;