1'use strict'; 2 3require('../common'); 4const path = require('path'); 5const assert = require('assert'); 6const { Worker } = require('worker_threads'); 7 8{ 9 const expectedErr = { 10 code: 'ERR_WORKER_PATH', 11 name: 'TypeError' 12 }; 13 const existingRelPathNoDot = path.relative('.', __filename); 14 assert.throws(() => { new Worker(existingRelPathNoDot); }, expectedErr); 15 assert.throws(() => { new Worker('relative_no_dot'); }, expectedErr); 16 assert.throws(() => { new Worker('file:///file_url'); }, expectedErr); 17 assert.throws(() => { new Worker('https://www.url.com'); }, expectedErr); 18} 19 20{ 21 assert.throws( 22 () => { new Worker('file:///file_url'); }, 23 /Wrap file:\/\/ URLs with `new URL`/ 24 ); 25 assert.throws( 26 () => { new Worker('data:text/javascript,'); }, 27 /Wrap data: URLs with `new URL`/ 28 ); 29 assert.throws( 30 () => { new Worker('relative_no_dot'); }, 31 // eslint-disable-next-line node-core/no-unescaped-regexp-dot 32 /^((?!Wrap file:\/\/ URLs with `new URL`).)*$/s 33 ); 34} 35 36{ 37 const expectedErr = { 38 code: 'ERR_INVALID_URL_SCHEME', 39 name: 'TypeError' 40 }; 41 assert.throws(() => { new Worker(new URL('https://www.url.com')); }, 42 expectedErr); 43} 44