Path: blob/main/src/vs/base/parts/ipc/test/electron-browser/ipc.mp.test.ts
4780 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { Client as MessagePortClient } from '../../browser/ipc.mp.js';7import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../test/common/utils.js';89suite('IPC, MessagePorts', () => {1011test('message port close event', async () => {12const { port1, port2 } = new MessageChannel();1314const client1 = new MessagePortClient(port1, 'client1');15const client2 = new MessagePortClient(port2, 'client2');1617// This test ensures that Electron's API for the close event18// does not break because we rely on it to dispose client19// connections from the server.20//21// This event is not provided by browser MessagePort API though.22const whenClosed = new Promise<boolean>(resolve => port1.addEventListener('close', () => resolve(true)));2324client2.dispose();2526assert.ok(await whenClosed);2728client1.dispose();29});3031ensureNoDisposablesAreLeakedInTestSuite();32});333435