UNPKG

mocha-annotated

Version:
64 lines (48 loc) 1.28 kB
'use strict'; var Base = require('mocha/lib/reporters/base'); var _require = require('./helpers'), clean = _require.clean; /** * Initialize a new `JSON` reporter. * * @api public * @param {Runner} runner */ function AnnotatedJSONReporter(runner) { var _this = this; Base.call(this, runner); this.tests = []; this.pending = []; this.failures = []; this.passes = []; runner.on('test end', function (test) { _this.tests.push(test); }); runner.on('pass', function (test) { _this.passes.push(test); }); runner.on('fail', function (test, err) { // eslint-disable-next-line no-param-reassign test.err = test.err !== undefined ? test.err : err; _this.failures.push(test); }); runner.on('pending', function (test) { _this.pending.push(test); }); runner.once('end', function () { var obj = { stats: _this.stats, tests: _this.tests.map(clean), pending: _this.pending.map(clean), failures: _this.failures.map(clean), passes: _this.passes.map(clean) }; // eslint-disable-next-line no-param-reassign runner.testResults = obj; process.stdout.write(JSON.stringify(obj, null, 2)); }); } /** * Expose `AnnotatedJSONReporter`. */ module.exports = AnnotatedJSONReporter;