Sha256: 3da23a34ba04c0c447db908cef571cdc2bce1884adffe340c5688b5f2ceee48b

Contents?: true

Size: 1.79 KB

Versions: 8

Compression:

Stored size: 1.79 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 || '⋅';
  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('\033[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

8 entries across 8 versions & 1 rubygems

Version Path
stylus-source-0.28.2 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.28.1 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.28.0 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.27.2 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.27.1 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.27.0 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.26.1 vendor/node_modules/mocha/lib/reporters/progress.js
stylus-source-0.26.0 vendor/node_modules/mocha/lib/reporters/progress.js