1'use strict';
2
3require('../common');
4const assert = require('assert');
5const { Worker } = require('worker_threads');
6
7{
8  const expectedErr = {
9    code: 'ERR_INVALID_ARG_TYPE',
10    name: 'TypeError'
11  };
12
13  assert.throws(() => {
14    new Worker(__filename, { execArgv: 'hello' });
15  }, expectedErr);
16  assert.throws(() => {
17    new Worker(__filename, { execArgv: 6 });
18  }, expectedErr);
19}
20
21{
22  const expectedErr = {
23    code: 'ERR_WORKER_INVALID_EXEC_ARGV',
24    name: 'Error'
25  };
26  assert.throws(() => {
27    new Worker(__filename, { execArgv: ['--foo'] });
28  }, expectedErr);
29  assert.throws(() => {
30    new Worker(__filename, { execArgv: ['--title=blah'] });
31  }, expectedErr);
32  assert.throws(() => {
33    new Worker(__filename, { execArgv: ['--redirect-warnings'] });
34  }, expectedErr);
35}
36
37{
38  const expectedErr = {
39    code: 'ERR_WORKER_INVALID_EXEC_ARGV',
40    name: 'Error'
41  };
42  assert.throws(() => {
43    new Worker(__filename, {
44      env: {
45        NODE_OPTIONS: '--nonexistent-options'
46      }
47    });
48  }, expectedErr);
49}
50