77 */
88
99const assume = require ( 'assume' ) ;
10+ const Logger = require ( '../../../lib/winston/logger' ) ;
1011const Profiler = require ( '../../../lib/winston/profiler' ) ;
11-
12+ const { PassThrough } = require ( 'stream' ) ;
1213describe ( 'Profiler' , function ( ) {
1314 it ( 'new Profiler()' , function ( ) {
1415 assume ( function ( ) {
15- var profiler = new Profiler ( ) ;
16- } ) . throws ( ) ;
16+ new Profiler ( ) ;
17+ } ) . throws ( 'Logger is required for profiling' ) ;
1718 } ) ;
1819
1920 it ( '.done({ info })' , function ( done ) {
20- var profiler = new Profiler ( {
21- write : function ( info ) {
22- assume ( info ) . is . an ( 'object' ) ;
23- assume ( info . something ) . equals ( 'ok' ) ;
24- assume ( info . level ) . equals ( 'info' ) ;
25- assume ( info . durationMs ) . is . a ( 'number' ) ;
26- assume ( info . message ) . equals ( 'testing1' ) ;
27- done ( ) ;
28- }
29- } ) ;
30-
21+ const logger = new Logger ( ) ;
22+ logger . write = function ( info ) {
23+ assume ( info ) . is . an ( 'object' ) ;
24+ assume ( info . something ) . equals ( 'ok' ) ;
25+ assume ( info . level ) . equals ( 'info' ) ;
26+ assume ( info . durationMs ) . is . a ( 'number' ) ;
27+ assume ( info . message ) . equals ( 'testing1' ) ;
28+ done ( ) ;
29+ } ;
30+ var profiler = new Profiler ( logger ) ;
3131 setTimeout ( function ( ) {
3232 profiler . done ( {
3333 something : 'ok' ,
@@ -36,4 +36,30 @@ describe('Profiler', function () {
3636 } ) ;
3737 } , 200 ) ;
3838 } ) ;
39+
40+ it ( 'non logger object' , function ( ) {
41+ assume ( function ( ) {
42+ new Profiler ( new Error ( 'Unknown error' ) ) ;
43+ } ) . throws ( 'Logger is required for profiling' ) ;
44+
45+ assume ( function ( ) {
46+ new Profiler ( { a :'b' } ) ;
47+ } ) . throws ( 'Logger is required for profiling' ) ;
48+
49+ assume ( function ( ) {
50+ new Profiler ( [ 1 , 2 , 3 , 4 ] ) ;
51+ } ) . throws ( 'Logger is required for profiling' ) ;
52+
53+ assume ( function ( ) {
54+ new Profiler ( new PassThrough ( ) ) ;
55+ } ) . throws ( 'Logger is required for profiling' ) ;
56+
57+ assume ( function ( ) {
58+ new Profiler ( 2 ) ;
59+ } ) . throws ( 'Logger is required for profiling' ) ;
60+
61+ assume ( function ( ) {
62+ new Profiler ( '1' ) ;
63+ } ) . throws ( 'Logger is required for profiling' ) ;
64+ } )
3965} ) ;
0 commit comments