@@ -2,9 +2,14 @@ var sys = require('sys');
2
2
//
3
3
// Console reporter
4
4
//
5
- this . report = function ( data ) {
5
+ var stream , buffer ;
6
+
7
+ this . report = function ( data , s ) {
6
8
var event = data [ 1 ] ;
7
9
10
+ stream = typeof ( s ) === 'object' ? s : process . stdout ;
11
+ buffer = [ ] ;
12
+
8
13
switch ( data [ 0 ] ) {
9
14
case 'subject' :
10
15
puts ( '\n' + stylize ( event , 'underline' ) + '\n' ) ;
@@ -37,22 +42,25 @@ this.report = function (data) {
37
42
style = event . honored === event . total ? ( 'green' )
38
43
: ( event . errored === 0 ? 'yellow' : 'red' ) ;
39
44
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 ) ) ;
43
50
break ;
44
51
case 'error' :
45
52
puts ( '\n * ' + stylize ( event . error , 'red' ) ) ;
46
53
break ;
47
54
}
55
+ return buffer . join ( '' ) ;
48
56
} ;
49
57
50
58
function puts ( args ) {
51
59
args = Array . prototype . slice . call ( arguments ) . map ( function ( a ) {
52
60
return a . replace ( / ` ( [ ^ ` ] + ) ` / g, function ( _ , capture ) { return stylize ( capture , 'italic' ) } )
53
61
. replace ( / \* ( [ ^ * ] + ) \* / g, function ( _ , capture ) { return stylize ( capture , 'bold' ) } ) ;
54
62
} ) ;
55
- sys . puts . apply ( null , args ) ;
63
+ return stream ? stream . write ( args . join ( '\n' ) + '\n' ) : buffer . push ( args ) ;
56
64
}
57
65
58
66
// Stylize a string
0 commit comments