diff options
Diffstat (limited to 'test/parallel/test-message-channel.js')
-rw-r--r-- | test/parallel/test-message-channel.js | 22 |
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(); + })); +} |