Skip to content

Commit

Permalink
tests: add unit tests for sync true to ThreadStream
Browse files Browse the repository at this point in the history
  • Loading branch information
karankraina committed Oct 14, 2024
1 parent 89094c9 commit 341c330
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions test/transport/syncTrue.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
'use strict'

const pino = require('../..')
const { join } = require('node:path')
const { readFileSync } = require('node:fs')
const { test } = require('tap')
const { file } = require('../helper')

test('thread-stream sync true should log synchronously', async (t) => {
const outputPath = file()

function getOutputLogLines () {
return (readFileSync(outputPath)).toString().trim().split('\n').map(JSON.parse)
}

const transport = pino.transport({
target: join(__dirname, '..', 'fixtures', 'to-file-transport.js'),
options: { destination: outputPath },
sync: true
})
const instance = pino(transport)

var value = { message: 'sync' }
instance.info(value)
instance.info(value)
instance.info(value)
instance.info(value)
instance.info(value)
instance.info(value)
let interrupt = false
let flushData
let loopCounter = 0

// Start a synchronous loop
while (!interrupt && loopCounter < (process.env.MAX_TEST_LOOP_ITERATION || 5000)) {
try {
loopCounter++
const data = getOutputLogLines()
flushData = data
if (data) {
interrupt = true
break
}
} catch (error) {
// File may not exist yet
// Wait till MAX_TEST_LOOP_ITERATION iterations
}
}

if (!interrupt) {
throw new Error('Sync loop did not get interrupt')
}

t.equal(flushData.length, 6)
})

0 comments on commit 341c330

Please sign in to comment.