UNPKG

@typed/test

Version:
52 lines 1.98 kB
import { curry2, set } from '167'; import { blue } from 'typed-colors'; import { isTestCollection } from './isTestCollection'; export var describe = curry2(function (what, tests) { return new Describe(what, tests); }); var Describe = (function () { function Describe(name, tests) { this.name = 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(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; }()); export { 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 set(test.name, [previousResult, result], results); return 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 set(testCollection.name, [previousResult, testResults], results); return set(testCollection.name, testResults, results); }); } //# sourceMappingURL=describe.js.map