219 lines
4 KiB
JavaScript
219 lines
4 KiB
JavaScript
'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)
|
|
}
|