test('opts.browser.write func log single object', ({ end, ok, is }) => { const instance = pino({ browser: { write: function (o) { is(o.level, 30) is(o.test, 'test') ok(o.time) } } }) instance.info({ test: 'test' }) end() })
test('in absence of console, log methods become noops', ({ end, ok }) => { var console = global.console delete global.console const instance = fresh('../browser')() global.console = console ok(fnName(instance.log).match(/noop/)) ok(fnName(instance.fatal).match(/noop/)) ok(fnName(instance.error).match(/noop/)) ok(fnName(instance.warn).match(/noop/)) ok(fnName(instance.info).match(/noop/)) ok(fnName(instance.debug).match(/noop/)) ok(fnName(instance.trace).match(/noop/)) end() })
test('exposes faux stdSerializers', ({ end, ok, same }) => { ok(pino.stdSerializers) // make sure faux stdSerializers match pino-std-serializers for (const serializer in pinoStdSerializers) { ok(pino.stdSerializers[serializer], `pino.stdSerializers.${serializer}`) } // confirm faux methods return empty objects same(pino.stdSerializers.req(), {}) same(pino.stdSerializers.mapHttpRequest(), {}) same(pino.stdSerializers.mapHttpResponse(), {}) same(pino.stdSerializers.res(), {}) // confirm wrapping function is a passthrough const noChange = { foo: 'bar', fuz: 42 } same(pino.stdSerializers.wrapRequestSerializer(noChange), noChange) same(pino.stdSerializers.wrapResponseSerializer(noChange), noChange) end() })
test('opts.browser.asObject/write supports child loggers', ({ end, ok, is }) => { const instance = pino({ browser: { write (o) { is(o.level, 30) is(o.test, 'test') is(o.msg, 'msg-test') ok(o.time) } } }) const child = instance.child({ test: 'test' }) child.info('msg-test') end() })
test('opts.browser.asObject logs pino-like object to console', ({ end, ok, is }) => { var info = console.info console.info = function (o) { is(o.level, 30) is(o.msg, 'test') ok(o.time) console.info = info } const instance = require('../browser')({ browser: { asObject: true } }) instance.info('test') end() })
test('opts.browser.write obj writes to methods corresponding to level', ({ end, ok, is }) => { const instance = pino({ browser: { write: { error: function (o) { is(o.level, 50) is(o.test, 'test') ok(o.time) } } } }) instance.error({ test: 'test' }) end() })
test('opts.browser.write func log single string', ({ end, ok, is }) => { const instance = pino({ browser: { write: function (o) { is(o.level, 30) is(o.msg, 'test') ok(o.time) } } }) instance.info('test') end() })
test('opts.browser.write func string joining', ({ end, ok, is }) => { const instance = pino({ browser: { write: function (o) { is(o.level, 30) is(o.msg, 'test test2 test3') ok(o.time) } } }) instance.info('test %s %s', 'test2', 'test3') end() })
test('opts.browser.write func number', ({ end, ok, is }) => { const instance = pino({ browser: { write: function (o) { is(o.level, 30) is(o.msg, 1) ok(o.time) } } }) instance.info(1) end() })
test('opts.browser.write func string joining when asObject is true', ({ end, ok, is }) => { const instance = pino({ browser: { asObject: true, write: function (o) { is(o.level, 30) is(o.msg, 'test test2 test3') ok(o.time) } } }) instance.info('test %s %s', 'test2', 'test3') end() })
test('opts.browser.write func string object joining when asObject is true', ({ end, ok, is }) => { const instance = pino({ browser: { asObject: true, write: function (o) { is(o.level, 30) is(o.msg, 'test {"test":"test2"} {"test":"test3"}') ok(o.time) } } }) instance.info('test %j %j', { test: 'test2' }, { test: 'test3' }) end() })
test('opts.browser.write func string interpolation', ({ end, ok, is }) => { const instance = pino({ browser: { write: function (o) { is(o.level, 30) is(o.msg, 'test2 test ({"test":"test3"})') ok(o.time) } } }) instance.info('%s test (%j)', 'test2', { test: 'test3' }) end() })
test('opts.browser.write func string object joining', ({ end, ok, is }) => { const instance = pino({ browser: { write: function (o) { is(o.level, 30) is(o.msg, 'test {"test":"test2"} {"test":"test3"}') ok(o.time) } } }) instance.info('test %j %j', { test: 'test2' }, { test: 'test3' }) end() })
test('opts.browser.write func string joining when asObject is true', ({ end, ok, is }) => { const instance = pino({ browser: { asObject: true, write: function (o) { is(o.level, 30) is(o.msg, 'test test2 test3') ok(o.time) } } }) instance.info('test %s %s', 'test2', 'test3') end() })