You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					107 lines
				
				2.7 KiB
			
		
		
			
		
	
	
					107 lines
				
				2.7 KiB
			| 
											3 years ago
										 | 'use strict' | ||
|  | 
 | ||
|  | const os = require('os') | ||
|  | const { test } = require('tap') | ||
|  | const pino = require('../') | ||
|  | 
 | ||
|  | const { pid } = process | ||
|  | const hostname = os.hostname() | ||
|  | 
 | ||
|  | test('metadata works', async ({ ok, same, equal }) => { | ||
|  |   const now = Date.now() | ||
|  |   const instance = pino({}, { | ||
|  |     [Symbol.for('pino.metadata')]: true, | ||
|  |     write (chunk) { | ||
|  |       equal(instance, this.lastLogger) | ||
|  |       equal(30, this.lastLevel) | ||
|  |       equal('a msg', this.lastMsg) | ||
|  |       ok(Number(this.lastTime) >= now) | ||
|  |       same(this.lastObj, { hello: 'world', msg: 'a msg' }) | ||
|  |       const result = JSON.parse(chunk) | ||
|  |       ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()') | ||
|  |       delete result.time | ||
|  |       same(result, { | ||
|  |         pid, | ||
|  |         hostname, | ||
|  |         level: 30, | ||
|  |         hello: 'world', | ||
|  |         msg: 'a msg' | ||
|  |       }) | ||
|  |     } | ||
|  |   }) | ||
|  | 
 | ||
|  |   instance.info({ hello: 'world' }, 'a msg') | ||
|  | }) | ||
|  | 
 | ||
|  | test('child loggers works', async ({ ok, same, equal }) => { | ||
|  |   const instance = pino({}, { | ||
|  |     [Symbol.for('pino.metadata')]: true, | ||
|  |     write (chunk) { | ||
|  |       equal(child, this.lastLogger) | ||
|  |       equal(30, this.lastLevel) | ||
|  |       equal('a msg', this.lastMsg) | ||
|  |       same(this.lastObj, { from: 'child', msg: 'a msg' }) | ||
|  |       const result = JSON.parse(chunk) | ||
|  |       ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()') | ||
|  |       delete result.time | ||
|  |       same(result, { | ||
|  |         pid, | ||
|  |         hostname, | ||
|  |         level: 30, | ||
|  |         hello: 'world', | ||
|  |         from: 'child', | ||
|  |         msg: 'a msg' | ||
|  |       }) | ||
|  |     } | ||
|  |   }) | ||
|  | 
 | ||
|  |   const child = instance.child({ hello: 'world' }) | ||
|  |   child.info({ from: 'child' }, 'a msg') | ||
|  | }) | ||
|  | 
 | ||
|  | test('without object', async ({ ok, same, equal }) => { | ||
|  |   const instance = pino({}, { | ||
|  |     [Symbol.for('pino.metadata')]: true, | ||
|  |     write (chunk) { | ||
|  |       equal(instance, this.lastLogger) | ||
|  |       equal(30, this.lastLevel) | ||
|  |       equal('a msg', this.lastMsg) | ||
|  |       same({ msg: 'a msg' }, this.lastObj) | ||
|  |       const result = JSON.parse(chunk) | ||
|  |       ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()') | ||
|  |       delete result.time | ||
|  |       same(result, { | ||
|  |         pid, | ||
|  |         hostname, | ||
|  |         level: 30, | ||
|  |         msg: 'a msg' | ||
|  |       }) | ||
|  |     } | ||
|  |   }) | ||
|  | 
 | ||
|  |   instance.info('a msg') | ||
|  | }) | ||
|  | 
 | ||
|  | test('without msg', async ({ ok, same, equal }) => { | ||
|  |   const instance = pino({}, { | ||
|  |     [Symbol.for('pino.metadata')]: true, | ||
|  |     write (chunk) { | ||
|  |       equal(instance, this.lastLogger) | ||
|  |       equal(30, this.lastLevel) | ||
|  |       equal(undefined, this.lastMsg) | ||
|  |       same({ hello: 'world' }, this.lastObj) | ||
|  |       const result = JSON.parse(chunk) | ||
|  |       ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()') | ||
|  |       delete result.time | ||
|  |       same(result, { | ||
|  |         pid, | ||
|  |         hostname, | ||
|  |         level: 30, | ||
|  |         hello: 'world' | ||
|  |       }) | ||
|  |     } | ||
|  |   }) | ||
|  | 
 | ||
|  |   instance.info({ hello: 'world' }) | ||
|  | }) |