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.
239 lines
5.1 KiB
239 lines
5.1 KiB
'use strict' |
|
|
|
var test = require('tap').test |
|
var pino = require('../') |
|
var sink = require('./helper').sink |
|
var check = require('./helper').check |
|
|
|
test('set the level by string', function (t) { |
|
t.plan(4) |
|
var expected = [{ |
|
level: 50, |
|
msg: 'this is an error' |
|
}, { |
|
level: 60, |
|
msg: 'this is fatal' |
|
}] |
|
var instance = pino(sink(function (chunk, enc, cb) { |
|
var current = expected.shift() |
|
check(t, chunk, current.level, current.msg) |
|
cb() |
|
})) |
|
|
|
instance.level = 'error' |
|
instance.info('hello world') |
|
instance.error('this is an error') |
|
instance.fatal('this is fatal') |
|
}) |
|
|
|
test('the wrong level throws', function (t) { |
|
t.plan(1) |
|
var instance = pino() |
|
t.throws(function () { |
|
instance.level = 'kaboom' |
|
}) |
|
}) |
|
|
|
test('set the level by number', function (t) { |
|
t.plan(4) |
|
var expected = [{ |
|
level: 50, |
|
msg: 'this is an error' |
|
}, { |
|
level: 60, |
|
msg: 'this is fatal' |
|
}] |
|
var instance = pino(sink(function (chunk, enc, cb) { |
|
var current = expected.shift() |
|
check(t, chunk, current.level, current.msg) |
|
cb() |
|
})) |
|
|
|
instance.levelVal = 50 |
|
instance.info('hello world') |
|
instance.error('this is an error') |
|
instance.fatal('this is fatal') |
|
}) |
|
|
|
test('set the level by number via string method', function (t) { |
|
t.plan(4) |
|
var expected = [{ |
|
level: 50, |
|
msg: 'this is an error' |
|
}, { |
|
level: 60, |
|
msg: 'this is fatal' |
|
}] |
|
var instance = pino(sink(function (chunk, enc, cb) { |
|
var current = expected.shift() |
|
check(t, chunk, current.level, current.msg) |
|
cb() |
|
})) |
|
|
|
instance.level = 50 |
|
instance.info('hello world') |
|
instance.error('this is an error') |
|
instance.fatal('this is fatal') |
|
}) |
|
|
|
test('exposes level string mappings', function (t) { |
|
t.plan(1) |
|
t.equal(pino.levels.values.error, 50) |
|
}) |
|
|
|
test('exposes level number mappings', function (t) { |
|
t.plan(1) |
|
t.equal(pino.levels.labels[50], 'error') |
|
}) |
|
|
|
test('returns level integer', function (t) { |
|
t.plan(1) |
|
var instance = pino({ level: 'error' }) |
|
t.equal(instance.levelVal, 50) |
|
}) |
|
|
|
test('child returns level integer', function (t) { |
|
t.plan(1) |
|
var parent = pino({ level: 'error' }) |
|
var child = parent.child({ foo: 'bar' }) |
|
t.equal(child.levelVal, 50) |
|
}) |
|
|
|
test('set the level via constructor', function (t) { |
|
t.plan(4) |
|
var expected = [{ |
|
level: 50, |
|
msg: 'this is an error' |
|
}, { |
|
level: 60, |
|
msg: 'this is fatal' |
|
}] |
|
var instance = pino({ level: 'error' }, sink(function (chunk, enc, cb) { |
|
var current = expected.shift() |
|
check(t, chunk, current.level, current.msg) |
|
cb() |
|
})) |
|
|
|
instance.info('hello world') |
|
instance.error('this is an error') |
|
instance.fatal('this is fatal') |
|
}) |
|
|
|
test('enable', function (t) { |
|
var instance = pino({ |
|
level: 'trace', |
|
enabled: false |
|
}, sink(function (chunk, enc, cb) { |
|
t.fail('no data should be logged') |
|
})) |
|
|
|
Object.keys(pino.levels.values).forEach(function (level) { |
|
instance[level]('hello world') |
|
}) |
|
t.end() |
|
}) |
|
|
|
test('silent level', function (t) { |
|
var instance = pino({ |
|
level: 'silent' |
|
}, sink(function (chunk, enc, cb) { |
|
t.fail('no data should be logged') |
|
})) |
|
|
|
Object.keys(pino.levels.values).forEach(function (level) { |
|
instance[level]('hello world') |
|
}) |
|
t.end() |
|
}) |
|
|
|
test('setting level to 100', function (t) { |
|
var instance = pino({ |
|
level: 100 |
|
}, sink(function (chunk, enc, cb) { |
|
t.fail('no data should be logged') |
|
})) |
|
|
|
Object.keys(pino.levels.values).forEach(function (level) { |
|
instance[level]('hello world') |
|
}) |
|
t.end() |
|
}) |
|
|
|
test('exposed levels', function (t) { |
|
t.plan(1) |
|
t.deepEqual(Object.keys(pino.levels.values), [ |
|
'fatal', |
|
'error', |
|
'warn', |
|
'info', |
|
'debug', |
|
'trace' |
|
]) |
|
}) |
|
|
|
test('exposed labels', function (t) { |
|
t.plan(1) |
|
t.deepEqual(Object.keys(pino.levels.labels), [ |
|
'10', |
|
'20', |
|
'30', |
|
'40', |
|
'50', |
|
'60' |
|
]) |
|
}) |
|
|
|
test('setting level in child', function (t) { |
|
t.plan(4) |
|
var expected = [{ |
|
level: 50, |
|
msg: 'this is an error' |
|
}, { |
|
level: 60, |
|
msg: 'this is fatal' |
|
}] |
|
var instance = pino(sink(function (chunk, enc, cb) { |
|
var current = expected.shift() |
|
check(t, chunk, current.level, current.msg) |
|
cb() |
|
})).child({ level: 30 }) |
|
|
|
instance.level = 'error' |
|
instance.info('hello world') |
|
instance.error('this is an error') |
|
instance.fatal('this is fatal') |
|
}) |
|
|
|
test('level-change event', function (t) { |
|
var instance = pino() |
|
var handle = function (lvl, val, prevLvl, prevVal) { |
|
t.is(lvl, 'trace') |
|
t.is(val, 10) |
|
t.is(prevLvl, 'info') |
|
t.is(prevVal, 30) |
|
} |
|
instance.on('level-change', handle) |
|
instance.level = 'trace' |
|
instance.removeListener('level-change', handle) |
|
instance.level = 'info' |
|
|
|
var count = 0 |
|
|
|
var l1 = function () { count += 1 } |
|
var l2 = function () { count += 1 } |
|
var l3 = function () { count += 1 } |
|
instance.on('level-change', l1) |
|
instance.on('level-change', l2) |
|
instance.on('level-change', l3) |
|
|
|
instance.level = 'trace' |
|
instance.removeListener('level-change', l3) |
|
instance.level = 'fatal' |
|
instance.removeListener('level-change', l1) |
|
instance.level = 'debug' |
|
instance.removeListener('level-change', l2) |
|
instance.level = 'info' |
|
|
|
t.is(count, 6) |
|
t.end() |
|
})
|
|
|