55 lines
1.8 KiB
JavaScript

'use strict'
const test = require('node:test')
const assert = require('node:assert')
const { join } = require('node:path')
const { pathToFileURL } = require('node:url')
const { readFile } = require('node:fs').promises
const execa = require('execa')
const { file, watchFileCreated } = require('../helper')
test('pino.transport works when loaded via --import=preload', async () => {
const destination = file()
const preload = pathToFileURL(join(__dirname, '..', 'fixtures', 'transport-preload.mjs')).href
const main = join(__dirname, '..', 'fixtures', 'transport-preload-main.mjs')
await execa(process.argv[0], [
`--import=${preload}`,
main,
destination
], { timeout: 10000 })
await watchFileCreated(destination)
const result = JSON.parse(await readFile(destination))
assert.equal(result.msg, 'hello from main')
})
test('pino.transport works when loaded via --import preload (space separated)', async () => {
const destination = file()
const preload = pathToFileURL(join(__dirname, '..', 'fixtures', 'transport-preload.mjs')).href
const main = join(__dirname, '..', 'fixtures', 'transport-preload-main.mjs')
await execa(process.argv[0], [
'--import',
preload,
main,
destination
], { timeout: 10000 })
await watchFileCreated(destination)
const result = JSON.parse(await readFile(destination))
assert.equal(result.msg, 'hello from main')
})
test('pino.transport ignores missing absolute preload from NODE_OPTIONS in worker', async () => {
const destination = file()
const main = join(__dirname, '..', 'fixtures', 'transport-invalid-node-options.js')
await execa(process.argv[0], [main, destination], { timeout: 10000 })
await watchFileCreated(destination)
const result = JSON.parse(await readFile(destination))
assert.equal(result.msg, 'hello with invalid node options preload')
})