@@ -5,6 +5,7 @@ var pino = require('./')
55var writeStream = require ( 'flush-write-stream' )
66var os = require ( 'os' )
77var split = require ( 'split2' )
8+ var http = require ( 'http' )
89var pid = process . pid
910var hostname = os . hostname ( )
1011
@@ -250,3 +251,157 @@ test('set properties defined in the prototype chain', function (t) {
250251
251252 instance . info ( new MyObject ( ) )
252253} )
254+
255+ test ( 'http request support' , function ( t ) {
256+ t . plan ( 3 )
257+
258+ var originalReq
259+ var instance = pino ( sink ( function ( chunk , enc , cb ) {
260+ t . ok ( Date . parse ( chunk . time ) <= new Date ( ) , 'time is greater than Date.now()' )
261+ delete chunk . time
262+ t . deepEqual ( chunk , {
263+ pid : pid ,
264+ hostname : hostname ,
265+ level : 30 ,
266+ msg : 'my request' ,
267+ v : 0 ,
268+ req : {
269+ method : originalReq . method ,
270+ url : originalReq . url ,
271+ headers : originalReq . headers ,
272+ remoteAddress : originalReq . connection . remoteAddress ,
273+ remotePort : originalReq . connection . remotePort
274+ }
275+ } )
276+ cb ( )
277+ } ) )
278+
279+ var server = http . createServer ( function ( req , res ) {
280+ originalReq = req
281+ instance . info ( req , 'my request' )
282+ res . end ( 'hello' )
283+ } ) . listen ( function ( err ) {
284+ t . error ( err )
285+ t . teardown ( server . close . bind ( server ) )
286+
287+ http . get ( 'http://localhost:' + server . address ( ) . port , function ( res ) {
288+ res . resume ( )
289+ } )
290+ } )
291+ } )
292+
293+ test ( 'http request support via serializer' , function ( t ) {
294+ t . plan ( 3 )
295+
296+ var originalReq
297+ var instance = pino ( {
298+ serializers : {
299+ req : pino . stdSerializers . req
300+ }
301+ } , sink ( function ( chunk , enc , cb ) {
302+ t . ok ( Date . parse ( chunk . time ) <= new Date ( ) , 'time is greater than Date.now()' )
303+ delete chunk . time
304+ t . deepEqual ( chunk , {
305+ pid : pid ,
306+ hostname : hostname ,
307+ level : 30 ,
308+ msg : 'my request' ,
309+ v : 0 ,
310+ req : {
311+ method : originalReq . method ,
312+ url : originalReq . url ,
313+ headers : originalReq . headers ,
314+ remoteAddress : originalReq . connection . remoteAddress ,
315+ remotePort : originalReq . connection . remotePort
316+ }
317+ } )
318+ cb ( )
319+ } ) )
320+
321+ var server = http . createServer ( function ( req , res ) {
322+ originalReq = req
323+ instance . info ( { req : req } , 'my request' )
324+ res . end ( 'hello' )
325+ } ) . listen ( function ( err ) {
326+ t . error ( err )
327+ t . teardown ( server . close . bind ( server ) )
328+
329+ http . get ( 'http://localhost:' + server . address ( ) . port , function ( res ) {
330+ res . resume ( )
331+ } )
332+ } )
333+ } )
334+
335+ test ( 'http response support' , function ( t ) {
336+ t . plan ( 3 )
337+
338+ var originalRes
339+ var instance = pino ( sink ( function ( chunk , enc , cb ) {
340+ t . ok ( Date . parse ( chunk . time ) <= new Date ( ) , 'time is greater than Date.now()' )
341+ delete chunk . time
342+ t . deepEqual ( chunk , {
343+ pid : pid ,
344+ hostname : hostname ,
345+ level : 30 ,
346+ msg : 'my response' ,
347+ v : 0 ,
348+ res : {
349+ statusCode : originalRes . statusCode ,
350+ header : originalRes . _header
351+ }
352+ } )
353+ cb ( )
354+ } ) )
355+
356+ var server = http . createServer ( function ( req , res ) {
357+ originalRes = res
358+ res . end ( 'hello' )
359+ instance . info ( res , 'my response' )
360+ } ) . listen ( function ( err ) {
361+ t . error ( err )
362+ t . teardown ( server . close . bind ( server ) )
363+
364+ http . get ( 'http://localhost:' + server . address ( ) . port , function ( res ) {
365+ res . resume ( )
366+ } )
367+ } )
368+ } )
369+
370+ test ( 'http response support via a serializer' , function ( t ) {
371+ t . plan ( 3 )
372+
373+ var originalRes
374+ var instance = pino ( {
375+ serializers : {
376+ res : pino . stdSerializers . res
377+ }
378+ } , sink ( function ( chunk , enc , cb ) {
379+ t . ok ( Date . parse ( chunk . time ) <= new Date ( ) , 'time is greater than Date.now()' )
380+ delete chunk . time
381+ t . deepEqual ( chunk , {
382+ pid : pid ,
383+ hostname : hostname ,
384+ level : 30 ,
385+ msg : 'my response' ,
386+ v : 0 ,
387+ res : {
388+ statusCode : originalRes . statusCode ,
389+ header : originalRes . _header
390+ }
391+ } )
392+ cb ( )
393+ } ) )
394+
395+ var server = http . createServer ( function ( req , res ) {
396+ originalRes = res
397+ res . end ( 'hello' )
398+ instance . info ( { res : res } , 'my response' )
399+ } ) . listen ( function ( err ) {
400+ t . error ( err )
401+ t . teardown ( server . close . bind ( server ) )
402+
403+ http . get ( 'http://localhost:' + server . address ( ) . port , function ( res ) {
404+ res . resume ( )
405+ } )
406+ } )
407+ } )
0 commit comments