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.

90 lines
2.1 KiB

'use strict'
var test = require('tap').test
var pino = require('../')
var sink = require('./helper').sink
var parentSerializers = {
test: function () { return 'parent' }
}
var childSerializers = {
test: function () { return 'child' }
}
test('child does not override parent serializers', function (t) {
t.plan(2)
var parent = pino({ serializers: parentSerializers })
var child = parent.child({ serializers: childSerializers })
t.deepEqual(parent.serializers, parentSerializers)
t.deepEqual(child.serializers, childSerializers)
})
test('children inherit parent serializers', function (t) {
t.plan(1)
var parent = pino({ serializers: parentSerializers })
var child = parent.child({a: 'property'})
t.deepEqual(child.serializers, parentSerializers)
})
test('children serializers get called', function (t) {
t.plan(1)
var parent = pino({
test: 'this'
}, sink(function (chunk, enc, cb) {
cb()
}))
var child = parent.child({ 'a': 'property', serializers: childSerializers })
child.serializers.test = function () {
t.ok('serializer called')
return 'called'
}
child.fatal({test: 'test'})
})
test('children serializers get called when inherited from parent', function (t) {
t.plan(1)
var parent = pino({
test: 'this',
serializers: childSerializers
}, sink(function (chunk, enc, cb) {
cb()
}))
var child = parent.child({ 'a': 'property' })
child.serializers.test = function () {
t.ok('serializer called')
return 'called'
}
child.fatal({test: 'test'})
})
test('non overriden serializers are available in the children', function (t) {
t.plan(3)
var pSerializers = {
onlyParent: function () { return 'parent' },
shared: function () { return 'parent' }
}
var cSerializers = {
shared: function () { return 'child' },
onlyChild: function () { return 'child' }
}
var parent = pino({ serializers: pSerializers })
var child = parent.child({ serializers: cSerializers })
t.equal(child.serializers.shared(), 'child')
t.equal(child.serializers.onlyParent(), 'parent')
t.equal(child.serializers.onlyChild(), 'child')
})