kizu
Version:
An easy-to-use, fast, and defensive Typescript/Javascript test runner designed to help you to write simple, readable, and maintainable tests.
52 lines • 2.44 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.run = run;
const ora_1 = __importDefault(require("ora"));
const output_1 = require("./output");
const calculateFinalResults_1 = require("./calculateFinalResults");
const workerPool_1 = require("./workerPool");
const shouldExitWithError_1 = require("./shouldExitWithError");
const getSpecFiles_1 = require("./getSpecFiles");
const testResultsByFile = {};
let numCompletedTests = 0;
const status = (0, ora_1.default)();
function run(flags, filesGlob) {
return __awaiter(this, void 0, void 0, function* () {
const specFiles = yield (0, getSpecFiles_1.getSpecFiles)(filesGlob);
console.log(`Found ${specFiles.length} spec files.\n`);
status.start('Running tests...');
yield (0, workerPool_1.workerPool)(specFiles, addTestResults);
showResults(flags, specFiles);
});
}
/**
* Add TestResults and update status.
* @param file
* @param results
*/
function addTestResults(file, results) {
numCompletedTests = numCompletedTests + 1;
testResultsByFile[file] = (testResultsByFile[file] || []).concat([results]);
status.text = `${numCompletedTests} tests completed.`;
}
function showResults(flags, specFiles) {
status.stop();
const finalResults = (0, calculateFinalResults_1.calculateFinalResults)(specFiles, testResultsByFile);
(0, output_1.printResultsByFile)(testResultsByFile, flags.failOnly);
(0, output_1.printSummary)(finalResults);
if ((0, shouldExitWithError_1.shouldExitWithError)(finalResults))
process.exit(1);
}
//# sourceMappingURL=run.js.map