beater-html-reporter
Version:
beater html reporter
82 lines (74 loc) • 3.25 kB
JavaScript
;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var escapeHtml = function escapeHtml(html) {
return html.replace(/&/g, '&').replace(/>/g, '>').replace(/</g, '<').replace(/"/g, '"');
};
var ensureRootElement = function ensureRootElement() {
var id = 'beater';
var e = document.getElementById(id);
if (e) return e;
var root = document.createElement('ul');
root.setAttribute('id', id);
document.body.appendChild(root);
return root;
};
var log = function log(html) {
var root = ensureRootElement();
var li = document.createElement('li');
li.innerHTML = html;
root.appendChild(li);
};
var failure = function failure(html) {
return '<span style="color: #ff0000">' + escapeHtml(html) + '</span>';
};
var success = function success(html) {
return '<span style="color: #00ff00">' + escapeHtml(html) + '</span>';
};
var v = '✓';
var x = '✗';
var BeaterHtmlReporter = function () {
function BeaterHtmlReporter() {
_classCallCheck(this, BeaterHtmlReporter);
}
_createClass(BeaterHtmlReporter, [{
key: 'started',
value: function started() {}
}, {
key: 'finished',
value: function finished(results) {
var passed = results.filter(function (_ref) {
var error = _ref.error;
return !!!error;
});
var failed = results.filter(function (_ref2) {
var error = _ref2.error;
return !!error;
});
failed.forEach(function (_ref3) {
var test = _ref3.test;
var _ref3$error = _ref3.error;
var name = _ref3$error.name;
var message = _ref3$error.message;
log(['' + failure(x + ' failure: ') + test.name, name + ': ' + message].join('<br />'));
});
var summary = failed.length > 0 ? failure(x + (' ' + failed.length + ' of ' + results.length + ' tests failed')) : success(v + (' ' + results.length + ' tests passed'));
log(summary);
}
}, {
key: 'testStarted',
value: function testStarted(_) {}
}, {
key: 'testFinished',
value: function testFinished(result) {
if (!!result.error) return;
log('' + success(v + ' success: ') + result.test.name);
}
}]);
return BeaterHtmlReporter;
}();
function default_1() {
return new BeaterHtmlReporter();
}
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;