summaryrefslogtreecommitdiff
path: root/test/parallel/test-message-channel.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/parallel/test-message-channel.js')
-rw-r--r--test/parallel/test-message-channel.js22
1 files changed, 21 insertions, 1 deletions
diff --git a/test/parallel/test-message-channel.js b/test/parallel/test-message-channel.js
index 0facaa1d83..eb13fa57c6 100644
--- a/test/parallel/test-message-channel.js
+++ b/test/parallel/test-message-channel.js
@@ -2,7 +2,7 @@
'use strict';
const common = require('../common');
const assert = require('assert');
-const { MessageChannel } = require('worker');
+const { MessageChannel, MessagePort, Worker } = require('worker');
{
const channel = new MessageChannel();
@@ -24,3 +24,23 @@ const { MessageChannel } = require('worker');
channel.port2.on('close', common.mustCall());
channel.port2.close();
}
+
+{
+ const channel = new MessageChannel();
+
+ const w = new Worker(`
+ const { MessagePort } = require('worker');
+ const assert = require('assert');
+ require('worker').parentPort.on('message', ({ port }) => {
+ assert(port instanceof MessagePort);
+ port.postMessage('works');
+ });
+ `, { eval: true });
+ w.postMessage({ port: channel.port2 }, [ channel.port2 ]);
+ assert(channel.port1 instanceof MessagePort);
+ assert(channel.port2 instanceof MessagePort);
+ channel.port1.on('message', common.mustCall((message) => {
+ assert.strictEqual(message, 'works');
+ w.terminate();
+ }));
+}