summaryrefslogtreecommitdiff
path: root/test/parallel/test-permission-deny-worker-threads.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/parallel/test-permission-deny-worker-threads.js')
-rw-r--r--test/parallel/test-permission-deny-worker-threads.js32
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);
+}