diff options
Diffstat (limited to 'test/parallel/test-permission-deny-worker-threads.js')
-rw-r--r-- | test/parallel/test-permission-deny-worker-threads.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/parallel/test-permission-deny-worker-threads.js b/test/parallel/test-permission-deny-worker-threads.js new file mode 100644 index 0000000000..741b7d1a57 --- /dev/null +++ b/test/parallel/test-permission-deny-worker-threads.js @@ -0,0 +1,32 @@ +// Flags: --experimental-permission --allow-fs-read=* --allow-worker +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const { + Worker, + isMainThread, +} = require('worker_threads'); +const { once } = require('events'); + +async function createWorker() { + // doesNotThrow + const worker = new Worker(__filename); + await once(worker, 'exit'); + // When a permission is set by API, the process shouldn't be able + // to create worker threads + assert.ok(process.permission.deny('worker')); + assert.throws(() => { + new Worker(__filename); + }, common.expectsError({ + code: 'ERR_ACCESS_DENIED', + permission: 'WorkerThreads', + })); +} + +if (isMainThread) { + createWorker(); +} else { + process.exit(0); +} |