Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/lib/node_modules/strapi/node_modules/pino/test/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict'
// eslint-disable-next-line
if (typeof $1 !== 'undefined') $1 = arguments.callee.caller.arguments[0]
var test = require('tape')
var fresh = require('fresh-require')
var pino = require('../browser')
var parentSerializers = {
test: function () { return 'parent' }
}
var childSerializers = {
test: function () { return 'child' }
}
test('serializers override values', function (t) {
t.plan(1)
var parent = pino({ serializers: parentSerializers,
browser: { serialize: true,
write: function (o) {
t.is(o.test, 'parent')
}}})
parent.fatal({test: 'test'})
})
test('without the serialize option, serializers do not override values', function (t) {
t.plan(1)
var parent = pino({ serializers: parentSerializers,
browser: {
write: function (o) {
t.is(o.test, 'test')
}}})
parent.fatal({test: 'test'})
})
if (process.title !== 'browser') {
test('if serialize option is true, standard error serializer is auto enabled', function (t) {
t.plan(1)
var err = Error('test')
err.code = 'test'
err.type = 'Error' // get that cov
var expect = pino.stdSerializers.err(err)
var consoleError = console.error
console.error = function (err) {
t.deepEqual(err, expect)
}
var logger = fresh('../browser', require)({
browser: { serialize: true }
})
console.error = consoleError
logger.fatal(err)
})
test('if serialize option is array, standard error serializer is auto enabled', function (t) {
t.plan(1)
var err = Error('test')
err.code = 'test'
var expect = pino.stdSerializers.err(err)
var consoleError = console.error
console.error = function (err) {
t.deepEqual(err, expect)
}
var logger = fresh('../browser', require)({
browser: { serialize: [] }
})
console.error = consoleError
logger.fatal(err)
})
test('if serialize option is array containing !stdSerializers.err, standard error serializer is disabled', function (t) {
t.plan(1)
var err = Error('test')
err.code = 'test'
var expect = err
var consoleError = console.error
console.error = function (err) {
t.is(err, expect)
}
var logger = fresh('../browser', require)({
browser: { serialize: ['!stdSerializers.err'] }
})
console.error = consoleError
logger.fatal(err)
})
test('in browser, serializers apply to all objects', function (t) {
t.plan(3)
var consoleError = console.error
console.error = function (test, test2, test3, test4, test5) {
t.is(test.key, 'serialized')
t.is(test2.key2, 'serialized2')
t.is(test5.key3, 'serialized3')
}
var logger = fresh('../browser', require)({
serializers: {
key: function () { return 'serialized' },
key2: function () { return 'serialized2' },
key3: function () { return 'serialized3' }
},
browser: { serialize: true }
})
console.error = consoleError
logger.fatal({key: 'test'}, {key2: 'test'}, 'str should skip', [{foo: 'array should skip'}], {key3: 'test'})
})
test('serialize can be an array of selected serializers', function (t) {
t.plan(3)
var consoleError = console.error
console.error = function (test, test2, test3, test4, test5) {
t.is(test.key, 'test')
t.is(test2.key2, 'serialized2')
t.is(test5.key3, 'test')
}
var logger = fresh('../browser', require)({
serializers: {
key: function () { return 'serialized' },
key2: function () { return 'serialized2' },
key3: function () { return 'serialized3' }
},
browser: { serialize: ['key2'] }
})
console.error = consoleError
logger.fatal({key: 'test'}, {key2: 'test'}, 'str should skip', [{foo: 'array should skip'}], {key3: 'test'})
})
test('serialize filter applies to child loggers', function (t) {
t.plan(3)
var consoleError = console.error
console.error = function (binding, test, test2, test3, test4, test5) {
t.is(test.key, 'test')
t.is(test2.key2, 'serialized2')
t.is(test5.key3, 'test')
}
var logger = fresh('../browser', require)({
browser: { serialize: ['key2'] }
})
console.error = consoleError
logger.child({aBinding: 'test',
serializers: {
key: function () { return 'serialized' },
key2: function () { return 'serialized2' },
key3: function () { return 'serialized3' }
}}).fatal({key: 'test'}, {key2: 'test'}, 'str should skip', [{foo: 'array should skip'}], {key3: 'test'})
})
test('parent serializers apply to child bindings', function (t) {
t.plan(1)
var consoleError = console.error
console.error = function (binding) {
t.is(binding.key, 'serialized')
}
var logger = fresh('../browser', require)({
serializers: {
key: function () { return 'serialized' }
},
browser: { serialize: true }
})
console.error = consoleError
logger.child({key: 'test'}).fatal({test: 'test'})
})
test('child serializers apply to child bindings', function (t) {
t.plan(1)
var consoleError = console.error
console.error = function (binding) {
t.is(binding.key, 'serialized')
}
var logger = fresh('../browser', require)({
browser: { serialize: true }
})
console.error = consoleError
logger.child({key: 'test',
serializers: {
key: function () { return 'serialized' }
}}).fatal({test: 'test'})
})
}
test('child does not overwrite parent serializers', function (t) {
t.plan(2)
var c = 0
var parent = pino({ serializers: parentSerializers,
browser: { serialize: true,
write: function (o) {
c++
if (c === 1) t.is(o.test, 'parent')
if (c === 2) t.is(o.test, 'child')
}}})
var child = parent.child({ serializers: childSerializers })
parent.fatal({test: 'test'})
child.fatal({test: 'test'})
})
test('children inherit parent serializers', function (t) {
t.plan(1)
var parent = pino({ serializers: parentSerializers,
browser: { serialize: true,
write: function (o) {
t.is(o.test, 'parent')
}}})
var child = parent.child({a: 'property'})
child.fatal({test: 'test'})
})
test('children serializers get called', function (t) {
t.plan(1)
var parent = pino({
test: 'this',
browser: { serialize: true,
write: function (o) {
t.is(o.test, 'child')
}}})
var child = parent.child({ 'a': 'property', serializers: childSerializers })
child.fatal({test: 'test'})
})
test('children serializers get called when inherited from parent', function (t) {
t.plan(1)
var parent = pino({
test: 'this',
serializers: parentSerializers,
browser: { serialize: true,
write: function (o) {
t.is(o.test, 'pass')
}}})
var child = parent.child({serializers: {test: function () { return 'pass' }}})
child.fatal({test: 'fail'})
})
test('non overriden serializers are available in the children', function (t) {
t.plan(4)
var pSerializers = {
onlyParent: function () { return 'parent' },
shared: function () { return 'parent' }
}
var cSerializers = {
shared: function () { return 'child' },
onlyChild: function () { return 'child' }
}
var c = 0
var parent = pino({ serializers: pSerializers,
browser: { serialize: true,
write: function (o) {
c++
if (c === 1) t.is(o.shared, 'child')
if (c === 2) t.is(o.onlyParent, 'parent')
if (c === 3) t.is(o.onlyChild, 'child')
if (c === 4) t.is(o.onlyChild, 'test')
}}})
var child = parent.child({ serializers: cSerializers })
child.fatal({shared: 'test'})
child.fatal({onlyParent: 'test'})
child.fatal({onlyChild: 'test'})
parent.fatal({onlyChild: 'test'})
})
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0058 ]-- |