Skip to content

Commit 98c70ad

Browse files
author
cloudhead
committed
make console reporter a little more powerful
1 parent 1606341 commit 98c70ad

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

lib/vows/reporters/console.js

+13-5
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@ var sys = require('sys');
22
//
33
// Console reporter
44
//
5-
this.report = function (data) {
5+
var stream, buffer;
6+
7+
this.report = function (data, s) {
68
var event = data[1];
79

10+
stream = typeof(s) === 'object' ? s : process.stdout;
11+
buffer = [];
12+
813
switch (data[0]) {
914
case 'subject':
1015
puts('\n' + stylize(event, 'underline') + '\n');
@@ -37,22 +42,25 @@ this.report = function (data) {
3742
style = event.honored === event.total ? ('green')
3843
: (event.errored === 0 ? 'yellow' : 'red');
3944

40-
puts("\nVerified " + event.total + " vows in " +
41-
(event.time + " seconds."));
42-
puts("\n" + stylize(result, style));
45+
if (event.time) {
46+
puts("\nVerified " + event.total + " vows in " +
47+
(event.time + " seconds.\n"));
48+
}
49+
puts(stylize(result, style));
4350
break;
4451
case 'error':
4552
puts('\n * ' + stylize(event.error, 'red'));
4653
break;
4754
}
55+
return buffer.join('');
4856
};
4957

5058
function puts(args) {
5159
args = Array.prototype.slice.call(arguments).map(function (a) {
5260
return a.replace(/`([^`]+)`/g, function (_, capture) { return stylize(capture, 'italic') })
5361
.replace(/\*([^*]+)\*/g, function (_, capture) { return stylize(capture, 'bold') });
5462
});
55-
sys.puts.apply(null, args);
63+
return stream ? stream.write(args.join('\n') + '\n') : buffer.push(args);
5664
}
5765

5866
// Stylize a string

0 commit comments

Comments
 (0)