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.
43 lines
1020 B
43 lines
1020 B
'use strict'
|
|
|
|
const t = require('tap')
|
|
const { join } = require('path')
|
|
const { fork } = require('child_process')
|
|
const { once } = require('./helper')
|
|
const pino = require('..')
|
|
|
|
function test (file) {
|
|
file = join('fixtures', 'broken-pipe', file)
|
|
t.test(file, { parallel: true }, async ({ is }) => {
|
|
const child = fork(join(__dirname, file), { silent: true })
|
|
child.stdout.destroy()
|
|
|
|
child.stderr.pipe(process.stdout)
|
|
|
|
const res = await once(child, 'close')
|
|
is(res, 0) // process exits successfully
|
|
})
|
|
}
|
|
|
|
t.jobs = 42
|
|
|
|
test('basic.js')
|
|
test('destination.js')
|
|
test('extreme.js')
|
|
|
|
t.test('let error pass through', ({ is, plan }) => {
|
|
plan(3)
|
|
const stream = pino.destination()
|
|
|
|
// side effect of the pino constructor is that it will set an
|
|
// event handler for error
|
|
pino(stream)
|
|
|
|
process.nextTick(() => stream.emit('error', new Error('kaboom')))
|
|
process.nextTick(() => stream.emit('error', new Error('kaboom')))
|
|
|
|
stream.on('error', (err) => {
|
|
is(err.message, 'kaboom')
|
|
})
|
|
})
|