aboutsummaryrefslogtreecommitdiff
path: root/node_modules/mocha/lib/reporters/landing.js
diff options
context:
space:
mode:
authorHumairAK <humair88@hotmail.com>2016-07-26 07:43:04 +0000
committerHumairAK <humair88@hotmail.com>2016-07-26 07:43:04 +0000
commitf016bdbc35b7efa44bd63413bde09433ea916c59 (patch)
tree238a4ffbd447907876b2f1624cdb6f4abc3009eb /node_modules/mocha/lib/reporters/landing.js
parent10f1c442e27d82d1fc2c94d1bc0a2ad27917b287 (diff)
added some unit testing, need a lot more
Diffstat (limited to 'node_modules/mocha/lib/reporters/landing.js')
-rw-r--r--node_modules/mocha/lib/reporters/landing.js92
1 files changed, 92 insertions, 0 deletions
diff --git a/node_modules/mocha/lib/reporters/landing.js b/node_modules/mocha/lib/reporters/landing.js
new file mode 100644
index 0000000..b66b200
--- /dev/null
+++ b/node_modules/mocha/lib/reporters/landing.js
@@ -0,0 +1,92 @@
+/**
+ * Module dependencies.
+ */
+
+var Base = require('./base');
+var inherits = require('../utils').inherits;
+var cursor = Base.cursor;
+var color = Base.color;
+
+/**
+ * Expose `Landing`.
+ */
+
+exports = module.exports = Landing;
+
+/**
+ * Airplane color.
+ */
+
+Base.colors.plane = 0;
+
+/**
+ * Airplane crash color.
+ */
+
+Base.colors['plane crash'] = 31;
+
+/**
+ * Runway color.
+ */
+
+Base.colors.runway = 90;
+
+/**
+ * Initialize a new `Landing` reporter.
+ *
+ * @api public
+ * @param {Runner} runner
+ */
+function Landing(runner) {
+ Base.call(this, runner);
+
+ var self = this;
+ var width = Base.window.width * .75 | 0;
+ var total = runner.total;
+ var stream = process.stdout;
+ var plane = color('plane', '✈');
+ var crashed = -1;
+ var n = 0;
+
+ function runway() {
+ var buf = Array(width).join('-');
+ return ' ' + color('runway', buf);
+ }
+
+ runner.on('start', function() {
+ stream.write('\n\n\n ');
+ cursor.hide();
+ });
+
+ runner.on('test end', function(test) {
+ // check if the plane crashed
+ var col = crashed === -1 ? width * ++n / total | 0 : crashed;
+
+ // show the crash
+ if (test.state === 'failed') {
+ plane = color('plane crash', '✈');
+ crashed = col;
+ }
+
+ // render landing strip
+ stream.write('\u001b[' + (width + 1) + 'D\u001b[2A');
+ stream.write(runway());
+ stream.write('\n ');
+ stream.write(color('runway', Array(col).join('⋅')));
+ stream.write(plane);
+ stream.write(color('runway', Array(width - col).join('⋅') + '\n'));
+ stream.write(runway());
+ stream.write('\u001b[0m');
+ });
+
+ runner.on('end', function() {
+ cursor.show();
+ console.log();
+ self.epilogue();
+ });
+}
+
+/**
+ * Inherit from `Base.prototype`.
+ */
+inherits(Landing, Base);