karma
Version:
Spectacular Test Runner for JavaScript.
67 lines (44 loc) • 1.19 kB
JavaScript
var BaseReporter = require('./base');
var ProgressReporter = function(formatError, reportSlow) {
BaseReporter.call(this, formatError, reportSlow);
this.writeCommonMsg = function(msg) {
this.write(this._remove() + msg + this._render());
};
this.specSuccess = function() {
this.write(this._refresh());
};
this.onBrowserComplete = function() {
this.write(this._refresh());
};
this.onRunStart = function() {
this._browsers = [];
this._isRendered = false;
};
this.onBrowserStart = function(browser) {
this._browsers.push(browser);
if (this._isRendered) {
this.write('\n');
}
this.write(this._refresh());
};
this._remove = function() {
if (!this._isRendered) {
return '';
}
var cmd = '';
this._browsers.forEach(function() {
cmd += '\x1B[1A' + '\x1B[2K';
});
this._isRendered = false;
return cmd;
};
this._render = function() {
this._isRendered = true;
return this._browsers.map(this.renderBrowser).join('\n') + '\n';
};
this._refresh = function() {
return this._remove() + this._render();
};
};
// PUBLISH
module.exports = ProgressReporter;