UNPKG

@typed/test

Version:
54 lines 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _167_1 = require("167"); var typed_colors_1 = require("typed-colors"); var isTestCollection_1 = require("./isTestCollection"); exports.describe = _167_1.curry2(function (what, tests) { return new Describe(what, tests); }); var Describe = (function () { function Describe(name, tests) { this.name = typed_colors_1.blue('Describe') + " " + name; this.tests = tests; } Describe.prototype.run = function (timeout) { var tests = this.tests; var promise = Promise.resolve({}); var stats = { passed: true }; var _loop_1 = function (i) { promise = promise.then(function (results) { var test = tests[i]; return isTestCollection_1.isTestCollection(test) ? runTestCollection(timeout, test, results, stats) : runTest(timeout, test, results, stats); }); }; for (var i = 0; i < tests.length; ++i) { _loop_1(i); } return promise.then(function (results) { return ({ passed: stats.passed, results: results }); }); }; return Describe; }()); exports.Describe = Describe; function runTest(timeout, test, results, stats) { return test.run(timeout).then(function (result) { if (!result.passed) stats.passed = false; var previousResult = results[test.name]; if (previousResult) return _167_1.set(test.name, [previousResult, result], results); return _167_1.set(test.name, result, results); }); } function runTestCollection(timeout, testCollection, results, stats) { return testCollection.run(timeout).then(function (testResults) { if (!testResults.passed) stats.passed = false; var previousResult = results[testCollection.name]; if (previousResult) return _167_1.set(testCollection.name, [previousResult, testResults], results); return _167_1.set(testCollection.name, testResults, results); }); } //# sourceMappingURL=describe.js.map