formations/javascript/base/exercices/tests-unitaires/node_modules/nodeunit/node_modules/tap/lib/tap-results.js

73 lines
1.6 KiB
JavaScript

// A class for counting up results in a test harness.
module.exports = Results
var inherits = require("inherits")
, EventEmitter = require("events").EventEmitter
inherits(Results, EventEmitter)
function Results (r) {
//console.error("result constructor", r)
this.ok = true
this.addSet(r)
}
Results.prototype.addSet = function (r) {
//console.error("add set of results", r)
r = r || {ok: true}
; [ "todo"
, "todoPass"
, "todoFail"
, "skip"
, "skipPass"
, "skipFail"
, "pass"
, "passTotal"
, "fail"
, "failTotal"
, "tests"
, "testsTotal" ].forEach(function (k) {
this[k] = (this[k] || 0) + (r[k] || 0)
//console.error([k, this[k]])
}, this)
this.ok = this.ok && r.ok && true
this.bailedOut = this.bailedOut || r.bailedOut || false
this.list = (this.list || []).concat(r.list || [])
this.emit("set", this.list)
//console.error("after addSet", this)
}
Results.prototype.add = function (r, addToList) {
if (typeof r === 'object') {
var pf = r.ok ? "pass" : "fail"
, PF = r.ok ? "Pass" : "Fail"
this.testsTotal ++
this[pf + "Total"] ++
if (r.skip) {
this["skip" + PF] ++
this.skip ++
} else if (r.todo) {
this["todo" + PF] ++
this.todo ++
} else {
this.tests ++
this[pf] ++
}
if (r.bailout || typeof r.bailout === "string") {
// console.error("Bailing out in result")
this.bailedOut = true
}
this.ok = !!(this.ok && (r.ok || r.skip || r.todo))
}
if (addToList === false) return
this.list = this.list || []
this.list.push(r)
this.emit("result", r)
}