@@ -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
5058function 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