1'use strict'; 2 3// Tests the NODE_REDIRECT_WARNINGS environment variable by spawning 4// a new child node process that emits a warning into a temporary 5// warnings file. Once the process completes, the warning file is 6// opened and the contents are validated 7 8const common = require('../common'); 9const fixtures = require('../common/fixtures'); 10const fs = require('fs'); 11const fork = require('child_process').fork; 12const path = require('path'); 13const assert = require('assert'); 14 15const tmpdir = require('../common/tmpdir'); 16tmpdir.refresh(); 17 18const warnmod = require.resolve(fixtures.path('warnings.js')); 19const warnpath = path.join(tmpdir.path, 'warnings.txt'); 20 21fork(warnmod, { env: { ...process.env, NODE_REDIRECT_WARNINGS: warnpath } }) 22 .on('exit', common.mustCall(() => { 23 fs.readFile(warnpath, 'utf8', common.mustSucceed((data) => { 24 assert(/\(node:\d+\) Warning: a bad practice warning/.test(data)); 25 })); 26 })); 27