const { execFileSync } = require('node:child_process');
const path = require('node:path');

const fixtures = path.resolve(__dirname, '..');
const failJs = path.join(fixtures, 'module', 'fail.js');

const env = {
  ELECTRON_RUN_AS_NODE: 'true',
  // Process will exit with 1 if NODE_OPTIONS is accepted.
  NODE_OPTIONS: `--require "${failJs}"`,
  // Try bypassing the check with NODE_REPL_EXTERNAL_MODULE.
  NODE_REPL_EXTERNAL_MODULE: failJs
};
// Provide a lower cased NODE_OPTIONS in case some code ignores case sensitivity
// when reading NODE_OPTIONS.
env.node_options = env.NODE_OPTIONS;
try {
  execFileSync(process.argv[2],
    ['--require', path.join(fixtures, 'module', 'noop.js')],
    { env, stdio: 'inherit' });
  process.exit(0);
} catch (error) {
  console.log('NODE_OPTIONS passed to child');
  process.exit(1);
}
