summaryrefslogtreecommitdiff
path: root/test/parallel/test-worker-message-not-serializable.js
blob: 3753c7de6cbdf9b554f9230d662b4c43d37ab778 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'use strict';

// Flags: --expose-internals

// Check that main thread handles unserializable errors in a worker thread as
// expected.

const common = require('../common');

const assert = require('assert');

const { Worker } = require('worker_threads');

const worker = new Worker(`
  const { internalBinding } = require('internal/test/binding');
  const { getEnvMessagePort } = internalBinding('worker');
  const { messageTypes } = require('internal/worker/io');
  const messagePort = getEnvMessagePort();
  messagePort.postMessage({ type: messageTypes.COULD_NOT_SERIALIZE_ERROR });
`, { eval: true });

worker.on('error', common.mustCall((e) => {
  assert.strictEqual(e.code, 'ERR_WORKER_UNSERIALIZABLE_ERROR');
}));