current commit
260926.27 · src,lib: add --allow-env permission
'use strict';

// Test that process.permission.has()/drop() accept a URL or Uint8Array reference.

require('../common');
const { spawnSync } = require('child_process');
const assert = require('assert');
const { isMainThread } = require('worker_threads');

if (!isMainThread) {
  process.exit(0);
}

const tmpdir = require('../common/tmpdir');
const fixtures = require('../common/fixtures');
const fs = require('fs');
const path = require('path');

tmpdir.refresh();

const allowedDir = path.join(tmpdir.path, 'allowed');
const deniedDir = path.join(tmpdir.path, 'denied');
fs.mkdirSync(allowedDir);
fs.mkdirSync(deniedDir);

const allowedFile = path.join(allowedDir, 'a.txt');
const deniedFile = path.join(deniedDir, 'b.txt');
fs.writeFileSync(allowedFile, 'allowed');
fs.writeFileSync(deniedFile, 'denied');

const { status, stderr } = spawnSync(
  process.execPath,
  [
    '--permission',
    '--allow-env=ALLOWED_DIR,ALLOWED_FILE,DENIED_FILE',
    `--allow-fs-read=${allowedDir}`,
    fixtures.path('permission', 'has-reference-types.js'),
  ],
  {
    env: {
      ...process.env,
      ALLOWED_DIR: allowedDir,
      ALLOWED_FILE: allowedFile,
      DENIED_FILE: deniedFile,
    },
  },
);

assert.strictEqual(status, 0, stderr.toString());