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.
		
		
		
		
		
			
		
			
				
					
					
						
							219 lines
						
					
					
						
							4.0 KiB
						
					
					
				
			
		
		
	
	
							219 lines
						
					
					
						
							4.0 KiB
						
					
					
				| 'use strict'
 | |
| const test = require('tape')
 | |
| const pino = require('../browser')
 | |
| 
 | |
| test('set the level by string', ({ end, same, is }) => {
 | |
|   const expected = [
 | |
|     {
 | |
|       level: 50,
 | |
|       msg: 'this is an error'
 | |
|     },
 | |
|     {
 | |
|       level: 60,
 | |
|       msg: 'this is fatal'
 | |
|     }
 | |
|   ]
 | |
|   const instance = pino({
 | |
|     browser: {
 | |
|       write (actual) {
 | |
|         checkLogObjects(is, same, actual, expected.shift())
 | |
|       }
 | |
|     }
 | |
|   })
 | |
| 
 | |
|   instance.level = 'error'
 | |
|   instance.info('hello world')
 | |
|   instance.error('this is an error')
 | |
|   instance.fatal('this is fatal')
 | |
| 
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('set the level by string. init with silent', ({ end, same, is }) => {
 | |
|   const expected = [
 | |
|     {
 | |
|       level: 50,
 | |
|       msg: 'this is an error'
 | |
|     },
 | |
|     {
 | |
|       level: 60,
 | |
|       msg: 'this is fatal'
 | |
|     }
 | |
|   ]
 | |
|   const instance = pino({
 | |
|     level: 'silent',
 | |
|     browser: {
 | |
|       write (actual) {
 | |
|         checkLogObjects(is, same, actual, expected.shift())
 | |
|       }
 | |
|     }
 | |
|   })
 | |
| 
 | |
|   instance.level = 'error'
 | |
|   instance.info('hello world')
 | |
|   instance.error('this is an error')
 | |
|   instance.fatal('this is fatal')
 | |
| 
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('set the level by string. init with silent and transmit', ({ end, same, is }) => {
 | |
|   const expected = [
 | |
|     {
 | |
|       level: 50,
 | |
|       msg: 'this is an error'
 | |
|     },
 | |
|     {
 | |
|       level: 60,
 | |
|       msg: 'this is fatal'
 | |
|     }
 | |
|   ]
 | |
|   const instance = pino({
 | |
|     level: 'silent',
 | |
|     browser: {
 | |
|       write (actual) {
 | |
|         checkLogObjects(is, same, actual, expected.shift())
 | |
|       }
 | |
|     },
 | |
|     transmit: {
 | |
|       send () {}
 | |
|     }
 | |
|   })
 | |
| 
 | |
|   instance.level = 'error'
 | |
|   instance.info('hello world')
 | |
|   instance.error('this is an error')
 | |
|   instance.fatal('this is fatal')
 | |
| 
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('set the level via constructor', ({ end, same, is }) => {
 | |
|   const expected = [
 | |
|     {
 | |
|       level: 50,
 | |
|       msg: 'this is an error'
 | |
|     },
 | |
|     {
 | |
|       level: 60,
 | |
|       msg: 'this is fatal'
 | |
|     }
 | |
|   ]
 | |
|   const instance = pino({
 | |
|     level: 'error',
 | |
|     browser: {
 | |
|       write (actual) {
 | |
|         checkLogObjects(is, same, actual, expected.shift())
 | |
|       }
 | |
|     }
 | |
|   })
 | |
| 
 | |
|   instance.info('hello world')
 | |
|   instance.error('this is an error')
 | |
|   instance.fatal('this is fatal')
 | |
| 
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('the wrong level throws', ({ end, throws }) => {
 | |
|   const instance = pino()
 | |
|   throws(() => {
 | |
|     instance.level = 'kaboom'
 | |
|   })
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('the wrong level by number throws', ({ end, throws }) => {
 | |
|   const instance = pino()
 | |
|   throws(() => {
 | |
|     instance.levelVal = 55
 | |
|   })
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('exposes level string mappings', ({ end, is }) => {
 | |
|   is(pino.levels.values.error, 50)
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('exposes level number mappings', ({ end, is }) => {
 | |
|   is(pino.levels.labels[50], 'error')
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('returns level integer', ({ end, is }) => {
 | |
|   const instance = pino({ level: 'error' })
 | |
|   is(instance.levelVal, 50)
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('silent level via constructor', ({ end, fail }) => {
 | |
|   const instance = pino({
 | |
|     level: 'silent',
 | |
|     browser: {
 | |
|       write () {
 | |
|         fail('no data should be logged')
 | |
|       }
 | |
|     }
 | |
|   })
 | |
| 
 | |
|   Object.keys(pino.levels.values).forEach((level) => {
 | |
|     instance[level]('hello world')
 | |
|   })
 | |
| 
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('silent level by string', ({ end, fail }) => {
 | |
|   const instance = pino({
 | |
|     browser: {
 | |
|       write () {
 | |
|         fail('no data should be logged')
 | |
|       }
 | |
|     }
 | |
|   })
 | |
| 
 | |
|   instance.level = 'silent'
 | |
| 
 | |
|   Object.keys(pino.levels.values).forEach((level) => {
 | |
|     instance[level]('hello world')
 | |
|   })
 | |
| 
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('exposed levels', ({ end, same }) => {
 | |
|   same(Object.keys(pino.levels.values), [
 | |
|     'fatal',
 | |
|     'error',
 | |
|     'warn',
 | |
|     'info',
 | |
|     'debug',
 | |
|     'trace'
 | |
|   ])
 | |
|   end()
 | |
| })
 | |
| 
 | |
| test('exposed labels', ({ end, same }) => {
 | |
|   same(Object.keys(pino.levels.labels), [
 | |
|     '10',
 | |
|     '20',
 | |
|     '30',
 | |
|     '40',
 | |
|     '50',
 | |
|     '60'
 | |
|   ])
 | |
|   end()
 | |
| })
 | |
| 
 | |
| function checkLogObjects (is, same, actual, expected) {
 | |
|   is(actual.time <= Date.now(), true, 'time is greater than Date.now()')
 | |
| 
 | |
|   const actualCopy = Object.assign({}, actual)
 | |
|   const expectedCopy = Object.assign({}, expected)
 | |
|   delete actualCopy.time
 | |
|   delete expectedCopy.time
 | |
| 
 | |
|   same(actualCopy, expectedCopy)
 | |
| }
 |