UNPKG

beater-html-reporter

Version:
82 lines (74 loc) 3.25 kB
"use strict"; 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, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/"/g, '&quot;'); }; 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;