Skip to content

Commit bd8a4f8

Browse files
author
cloudhead
committed
refactor reporters, share more.
1 parent 8cd49ba commit bd8a4f8

File tree

3 files changed

+28
-27
lines changed

3 files changed

+28
-27
lines changed

lib/vows/console.js

+18
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,21 @@ this.puts = function (options) {
2525
return options.stream ? options.stream.write(args.join('\n') + '\n') : buffer.push(args);
2626
};
2727
};
28+
29+
this.result = function (event) {
30+
var result = event.honored + " honored, " +
31+
event.broken + " broken, " +
32+
event.errored + " errored",
33+
style = event.honored === event.total ? ('green')
34+
: (event.errored === 0 ? 'yellow' : 'red'),
35+
buffer = [];
36+
37+
38+
if ('time' in event) {
39+
buffer.push("\nVerified " + event.total + " vows in " +
40+
(event.time + " seconds.\n"));
41+
}
42+
buffer.push(this.stylize(result, style));
43+
44+
return buffer;
45+
};

lib/vows/reporters/dot-matrix.js

+5-14
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22
var sys = require('sys');
33

44
var options = {};
5-
var stylize = require('vows/console').stylize,
6-
puts = require('vows/console').puts(options);
5+
var console = require('vows/console');
6+
var stylize = console.stylize,
7+
puts = console.puts(options);
78
//
89
// Console reporter
910
//
1011
var stream, buffer, messages = [];
1112

13+
this.name = 'dot-matrix';
1214
this.report = function (data, s) {
1315
var event = data[1];
1416

@@ -46,24 +48,13 @@ this.report = function (data, s) {
4648
sys.print(' ');
4749
break;
4850
case 'finish':
49-
var result = event.honored + " honored, " +
50-
event.broken + " broken, " +
51-
event.errored + " errored",
52-
style = event.honored === event.total ? ('green')
53-
: (event.errored === 0 ? 'yellow' : 'red');
54-
5551
if (messages.length) {
5652
messages.pop(); // drop trailing blank message
5753
puts('\n\n' + messages.join('\n'));
5854
} else {
5955
sys.print('\n');
6056
}
61-
62-
if ('time' in event) {
63-
puts("\nVerified " + event.total + " vows in " +
64-
(event.time + " seconds.\n"));
65-
}
66-
puts(stylize(result, style));
57+
puts(console.result(event).join('\n'));
6758
break;
6859
case 'error':
6960
puts('\n\n * ' + stylize(event.error, 'red'));

lib/vows/reporters/spec.js

+5-13
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
var sys = require('sys');
22

33
var options = {};
4-
var stylize = require('vows/console').stylize,
5-
puts = require('vows/console').puts(options);
4+
var console = require('vows/console');
5+
var stylize = console.stylize,
6+
puts = console.puts(options);
67
//
78
// Console reporter
89
//
910

11+
this.name = 'spec';
1012
this.report = function (data, s) {
1113
var event = data[1];
1214

@@ -39,17 +41,7 @@ this.report = function (data, s) {
3941
sys.print('\n');
4042
break;
4143
case 'finish':
42-
var result = event.honored + " honored, " +
43-
event.broken + " broken, " +
44-
event.errored + " errored",
45-
style = event.honored === event.total ? ('green')
46-
: (event.errored === 0 ? 'yellow' : 'red');
47-
48-
if ('time' in event) {
49-
puts("\nVerified " + event.total + " vows in " +
50-
(event.time + " seconds.\n"));
51-
}
52-
puts(stylize(result, style));
44+
puts(console.result(event).join('\n'));
5345
break;
5446
case 'error':
5547
puts('\n * ' + stylize(event.error, 'red'));

0 commit comments

Comments
 (0)