diff --git a/test/parallel/test-inspector-connect-main-thread.js b/test/parallel/test-inspector-connect-main-thread.js index 7f354fb76f9393..bb21a54e90f1d1 100644 --- a/test/parallel/test-inspector-connect-main-thread.js +++ b/test/parallel/test-inspector-connect-main-thread.js @@ -50,28 +50,19 @@ function startWorker(skipChild, sharedBuffer) { console.error(e); throw e; }); - worker.once('message', (m) => { + // Add 2 promises to the worker, one resolved when a message with a + // .doConsoleLog property is received and one resolved when a .messagesSent + // property is received. + let resolveConsoleRequest; + let resolveMessagesSent; + worker.onConsoleRequest = + new Promise((resolve) => resolveConsoleRequest = resolve); + worker.onMessagesSent = + new Promise((resolve) => resolveMessagesSent = resolve); + worker.on('message', (m) => { resolve(worker); - }); - }); -} - -function waitForConsoleRequest(worker) { - return new Promise((resolve) => { - worker.on('message', ({ doConsoleLog }) => { - if (doConsoleLog) { - resolve(); - } - }); - }); -} - -function waitForMessagesSent(worker) { - return new Promise((resolve) => { - worker.on('message', ({ messagesSent }) => { - if (messagesSent) { - resolve(messagesSent); - } + if (m.doConsoleLog) resolveConsoleRequest(); + if (m.messagesSent) resolveMessagesSent(m.messagesSent); }); }); } @@ -107,10 +98,9 @@ async function main() { const arrayBuffer = new Uint8Array(sharedBuffer); arrayBuffer[0] = 1; const worker = await startWorker(false, sharedBuffer); - waitForConsoleRequest(worker).then(doConsoleLog.bind(null, arrayBuffer)); - const workerDonePromise = waitForMessagesSent(worker); + worker.onConsoleRequest.then(doConsoleLog.bind(null, arrayBuffer)); assert.strictEqual(toDebug(), 400); - assert.deepStrictEqual(await workerDonePromise, [ + assert.deepStrictEqual(await worker.onMessagesSent, [ 'Debugger.enable', 'Runtime.enable', 'Debugger.setBreakpointByUrl', @@ -122,7 +112,7 @@ async function main() { async function childMain() { // Ensures the worker does not terminate too soon parentPort.on('message', () => { }); - await waitForMessagesSent(await startWorker(true)); + await (await startWorker(true)).onMessagesSent; const session = new Session(); session.connectToMainThread(); await post(session, 'Debugger.enable');