'use strict'; // This checks the warning and the stack trace emitted by --trace-require-module=all. require('../common'); const { spawnSyncAndAssert } = require('../common/child_process'); const fixtures = require('../common/fixtures'); const assert = require('assert'); spawnSyncAndAssert(process.execPath, [ '--trace-warnings', '--trace-require-module=all', fixtures.path('es-modules', 'require-module.js'), ], { trim: true, stderr(output) { const lines = output.split('\n'); assert.match( lines[0], /ExperimentalWarning: CommonJS module .*require-module\.js is loading ES Module .*message\.mjs/ ); assert.strictEqual( lines[1], 'Support for loading ES Module in require() is an experimental feature and might change at any time' ); assert.match( lines[2], /at require \(.*modules\/helpers:\d+:\d+\)/ ); assert.match( lines[3], /at Object\. \(.*require-module\.js:1:1\)/ ); } }); spawnSyncAndAssert(process.execPath, [ '--trace-require-module=1', fixtures.path('es-modules', 'require-module.js'), ], { status: 9, trim: true, stderr: /invalid value for --trace-require-module/ });