should add numbers correctly.
equal(add(2, 3), 5);
should add numbers correctly.
equal(add(2, 3), 5);
Runner.prototype.hooks = function(name, callback) { | |
function next(suite) { | |
if (!suite) callback() | |
hook(name, () => { | |
next(suites.pop()) // run hooks for next suite | |
}) | |
} | |
next() | |
} |
Runner.prototype.runTest = function(fn) { | |
var self = this | |
var test = this.test | |
if (!test) return | |
try { | |
// 1. run the test | |
test.run(fn) | |
} catch (err) { |
Runner.prototype.runTests = function(callback) { | |
function next() { | |
// grab next test | |
test = tests.shift() | |
// no tests left, run callback running next suite | |
if (!test) callback() | |
// run beforeEach hooks | |
hooks(HOOK_TYPE_BEFORE_EACH, () => { | |
runTest(err => { | |
if (err) { |
Runner.prototype.hook = function (name, fn) { | |
// 1. for current suite, get hooks with name x | |
var hooks = this.suite.getHooks(name); | |
function next(i){ | |
// 3. grab current hook | |
var hook = hooks[i]; | |
// 4. executed all hooks under name x for suite | |
if (!hook) fn() |
Runner.prototype.runSuite = function (suite, fn) { | |
this.emit(EVENT_SUITE_BEGIN, (this.suite = suite)) | |
function done(errSuite) { | |
// 6. run all afterAll hooks | |
self.hook(HOOK_TYPE_AFTER_ALL, () => { | |
self.emit(EVENT_SUITE_END, suite); | |
fn(errSuite); | |
}); | |
} |
Runner.prototype.run = function(fn) { | |
var self = this | |
var rootSuite = this.suite | |
fn = fn || function() {} | |
function start() { | |
self.started = true | |
self.emit(Runner.constants.EVENT_RUN_BEGIN) | |
self.runSuite(rootSuite, function() { | |
self.emit(Runner.constants.EVENT_RUN_END) |
Base.prototype.epilogue = function() { | |
var stats = this.stats | |
Base.consoleLog() | |
// passes | |
var fmt = | |
color("bright pass", " ") + | |
color("green", " %d passing") + | |
color("light", " (%s)") |
function Spec(runner, options) { | |
Base.call(this, runner, options); | |
runner.on(Runner.constants.EVENT_RUN_BEGIN, function () { | |
Base.consoleLog(); | |
}); | |
// more .... | |
runner.on(Runner.constants.EVENT_TEST_PASS, function (test) { |
// lib/stats-collector.js | |
function createStatsCollector(runner) { | |
var stats = { | |
suites: 0, | |
tests: 0, | |
passes: 0, | |
pending: 0, | |
failures: 0, | |
}; |