dot.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. 'use strict';
  2. /**
  3. * @module Dot
  4. */
  5. /**
  6. * Module dependencies.
  7. */
  8. var Base = require('./base');
  9. var inherits = require('../utils').inherits;
  10. var color = Base.color;
  11. /**
  12. * Expose `Dot`.
  13. */
  14. exports = module.exports = Dot;
  15. /**
  16. * Initialize a new `Dot` matrix test reporter.
  17. *
  18. * @class
  19. * @memberof Mocha.reporters
  20. * @extends Mocha.reporters.Base
  21. * @public
  22. * @api public
  23. * @param {Runner} runner
  24. */
  25. function Dot(runner) {
  26. Base.call(this, runner);
  27. var self = this;
  28. var width = (Base.window.width * 0.75) | 0;
  29. var n = -1;
  30. runner.on('start', function() {
  31. process.stdout.write('\n');
  32. });
  33. runner.on('pending', function() {
  34. if (++n % width === 0) {
  35. process.stdout.write('\n ');
  36. }
  37. process.stdout.write(color('pending', Base.symbols.comma));
  38. });
  39. runner.on('pass', function(test) {
  40. if (++n % width === 0) {
  41. process.stdout.write('\n ');
  42. }
  43. if (test.speed === 'slow') {
  44. process.stdout.write(color('bright yellow', Base.symbols.dot));
  45. } else {
  46. process.stdout.write(color(test.speed, Base.symbols.dot));
  47. }
  48. });
  49. runner.on('fail', function() {
  50. if (++n % width === 0) {
  51. process.stdout.write('\n ');
  52. }
  53. process.stdout.write(color('fail', Base.symbols.bang));
  54. });
  55. runner.once('end', function() {
  56. console.log();
  57. self.epilogue();
  58. });
  59. }
  60. /**
  61. * Inherit from `Base.prototype`.
  62. */
  63. inherits(Dot, Base);