Sha256: 0817ee3678fa627623906cf3237186458a3991cc21bf644b39a8745b48474c22

Contents?: true

Size: 1.8 KB

Versions: 31

Compression:

Stored size: 1.8 KB

Contents

/**
 * Module dependencies.
 */

var Base = require('./base')
  , cursor = Base.cursor
  , color = Base.color;

/**
 * Expose `Progress`.
 */

exports = module.exports = Progress;

/**
 * General progress bar color.
 */

Base.colors.progress = 90;

/**
 * Initialize a new `Progress` bar test reporter.
 *
 * @param {Runner} runner
 * @param {Object} options
 * @api public
 */

function Progress(runner, options) {
  Base.call(this, runner);

  var self = this
    , options = options || {}
    , stats = this.stats
    , width = Base.window.width * .50 | 0
    , total = runner.total
    , complete = 0
    , max = Math.max;

  // default chars
  options.open = options.open || '[';
  options.complete = options.complete || '▬';
  options.incomplete = options.incomplete || Base.symbols.dot;
  options.close = options.close || ']';
  options.verbose = false;

  // tests started
  runner.on('start', function(){
    console.log();
    cursor.hide();
  });

  // tests complete
  runner.on('test end', function(){
    complete++;
    var incomplete = total - complete
      , percent = complete / total
      , n = width * percent | 0
      , i = width - n;

    cursor.CR();
    process.stdout.write('\u001b[J');
    process.stdout.write(color('progress', '  ' + options.open));
    process.stdout.write(Array(n).join(options.complete));
    process.stdout.write(Array(i).join(options.incomplete));
    process.stdout.write(color('progress', options.close));
    if (options.verbose) {
      process.stdout.write(color('progress', ' ' + complete + ' of ' + total));
    }
  });

  // tests are complete, output some stats
  // and the failures if any
  runner.on('end', function(){
    cursor.show();
    console.log();
    self.epilogue();
  });
}

/**
 * Inherit from `Base.prototype`.
 */

Progress.prototype.__proto__ = Base.prototype;

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
stylus-source-0.42.2 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.42.1 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.42.0 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.41.3 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.41.2 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.41.1 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.41.0 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.40.3 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.40.2 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.40.1 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.40.0 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.39.4 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.39.3 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.39.2 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.39.1 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.39.0 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.38.0 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.37.0 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.36.1 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.36.0 vendor/node_modules/mocha/lib/reporters/progress.js