58 lines
1023 B
JavaScript
Raw Normal View History

2014-01-05 20:07:11 +04:00
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(browsers) {
this._browsers = browsers;
this._isRendered = false;
};
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;