test: add spec for --require filtering in NODE_OPTIONS (#29508)

This commit is contained in:
Milan Burda
2021-06-03 07:43:28 +02:00
committed by GitHub
parent 6ab2684234
commit 7a11390b8a
3 changed files with 28 additions and 0 deletions

View File

@@ -131,6 +131,10 @@ void stop_and_close_uv_loop(uv_loop_t* loop) {
bool g_is_initialized = false;
bool IsPackagedApp() {
auto env = base::Environment::Create();
if (env->HasVar("ELECTRON_FORCE_IS_PACKAGED"))
return true;
base::FilePath exe_path;
base::PathService::Get(base::FILE_EXE, &exe_path);
base::FilePath::StringType base_name =

View File

@@ -132,6 +132,29 @@ describe('node feature', () => {
child.stderr.on('data', listener);
child.stdout.on('data', listener);
});
it('does allow --require in non-packaged apps', async () => {
const appPath = path.join(fixtures, 'module', 'noop.js');
const env = Object.assign({}, process.env, {
NODE_OPTIONS: `--require=${path.join(fixtures, 'module', 'fail.js')}`
});
// App should exit with code 1.
const child = childProcess.spawn(process.execPath, [appPath], { env });
const [code] = await emittedOnce(child, 'exit');
expect(code).to.equal(1);
});
it('does not allow --require in packaged apps', async () => {
const appPath = path.join(fixtures, 'module', 'noop.js');
const env = Object.assign({}, process.env, {
ELECTRON_FORCE_IS_PACKAGED: 'true',
NODE_OPTIONS: `--require=${path.join(fixtures, 'module', 'fail.js')}`
});
// App should exit with code 0.
const child = childProcess.spawn(process.execPath, [appPath], { env });
const [code] = await emittedOnce(child, 'exit');
expect(code).to.equal(0);
});
});
ifdescribe(features.isRunAsNodeEnabled())('Node.js cli flags', () => {

1
spec/fixtures/module/fail.js vendored Normal file
View File

@@ -0,0 +1 @@
process.exit(1);