Skip to content

Commit

Permalink
Added missing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mcollina committed Dec 11, 2018
1 parent 0184977 commit 68597d3
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 23 deletions.
23 changes: 0 additions & 23 deletions test/destination-exit.test.js

This file was deleted.

53 changes: 53 additions & 0 deletions test/exit.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
'use strict'

const { test } = require('tap')
const { join } = require('path')
const execa = require('execa')
const writer = require('flush-write-stream')
const { once } = require('./helper')

// https://github.com/pinojs/pino/issues/542
test('pino.destination log everything when calling process.exit(0)', async ({ isNot }) => {
var actual = ''
const child = execa(process.argv[0], [join(__dirname, 'fixtures', 'destination-exit.js')])

child.stdout.pipe(writer((s, enc, cb) => {
actual += s
cb()
}))

await once(child, 'close')

isNot(actual.match(/hello/), null)
isNot(actual.match(/world/), null)
})

test('pino.extreme does not log everything when calling process.exit(0)', async ({ is }) => {
var actual = ''
const child = execa(process.argv[0], [join(__dirname, 'fixtures', 'extreme-exit.js')])

child.stdout.pipe(writer((s, enc, cb) => {
actual += s
cb()
}))

await once(child, 'close')

is(actual.match(/hello/), null)
is(actual.match(/world/), null)
})

test('pino.extreme logs everything when calling flushSync', async ({ isNot }) => {
var actual = ''
const child = execa(process.argv[0], [join(__dirname, 'fixtures', 'extreme-flush-exit.js')])

child.stdout.pipe(writer((s, enc, cb) => {
actual += s
cb()
}))

await once(child, 'close')

isNot(actual.match(/hello/), null)
isNot(actual.match(/world/), null)
})
12 changes: 12 additions & 0 deletions test/final.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,18 @@ test('listener function immediately sync flushes when fired', async ({ pass, fai
if (passed === false) fail('flushSync not called')
})

test('listener function immediately sync flushes when fired (pino.destination)', async ({ pass, fail }) => {
const dest = pino.destination('/dev/null')
var passed = false
dest.flushSync = () => {
passed = true
pass('flushSync called')
}
pino.final(pino(dest), () => {})()
await sleep(10)
if (passed === false) fail('flushSync not called')
})

test('swallows the non-ready error', async ({ doesNotThrow }) => {
const dest = pino.extreme('/dev/null')
doesNotThrow(() => {
Expand Down
9 changes: 9 additions & 0 deletions test/fixtures/extreme-exit.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
global.process = { __proto__: process, pid: 123456 }
Date.now = function () { return 1459875739796 }
require('os').hostname = function () { return 'abcdefghijklmnopqr' }
var pino = require(require.resolve('./../../'))
var dest = pino.extreme(1)
var logger = pino({}, dest)
logger.info('hello')
logger.info('world')
process.exit(0)
10 changes: 10 additions & 0 deletions test/fixtures/extreme-flush-exit.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
global.process = { __proto__: process, pid: 123456 }
Date.now = function () { return 1459875739796 }
require('os').hostname = function () { return 'abcdefghijklmnopqr' }
var pino = require(require.resolve('./../../'))
var dest = pino.extreme(1)
var logger = pino({}, dest)
logger.info('hello')
logger.info('world')
dest.flushSync()
process.exit(0)

0 comments on commit 68597d3

Please sign in to comment.