Path: blob/main/src/vs/platform/agentHost/test/node/serverUrls.test.ts
13399 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 { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js';7import { formatWebSocketUrl, resolveServerUrls } from '../../node/serverUrls.js';89suite('serverUrls', () => {10ensureNoDisposablesAreLeakedInTestSuite();1112test('uses localhost for default local-only binding', () => {13assert.deepStrictEqual(resolveServerUrls(undefined, 8081), {14local: ['ws://localhost:8081'],15network: [],16});17});1819test('formats IPv6 websocket URLs with brackets', () => {20assert.strictEqual(formatWebSocketUrl('::1', 8081), 'ws://[::1]:8081');21assert.deepStrictEqual(resolveServerUrls('::1', 8081), {22local: ['ws://[::1]:8081'],23network: [],24});25assert.deepStrictEqual(resolveServerUrls('0000:0000:0000:0000:0000:0000:0000:0001', 8081), {26local: ['ws://[0000:0000:0000:0000:0000:0000:0000:0001]:8081'],27network: [],28});29});3031test('treats wildcard binding as localhost plus network urls', () => {32assert.deepStrictEqual(resolveServerUrls('0.0.0.0', 8081, {33lo0: [34{ address: '127.0.0.1', netmask: '255.0.0.0', family: 'IPv4', mac: '00:00:00:00:00:00', internal: true, cidr: '127.0.0.1/8' },35],36en0: [37{ address: '192.168.1.20', netmask: '255.255.255.0', family: 'IPv4', mac: '11:22:33:44:55:66', internal: false, cidr: '192.168.1.20/24' },38{ address: 'fe80::1', netmask: 'ffff:ffff:ffff:ffff::', family: 'IPv6', mac: '11:22:33:44:55:66', internal: false, cidr: 'fe80::1/64', scopeid: 0 },39],40}), {41local: ['ws://localhost:8081'],42network: ['ws://192.168.1.20:8081'],43});4445assert.deepStrictEqual(resolveServerUrls('0000:0000:0000:0000:0000:0000:0000:0000', 8081, {46lo0: [47{ address: '127.0.0.1', netmask: '255.0.0.0', family: 'IPv4', mac: '00:00:00:00:00:00', internal: true, cidr: '127.0.0.1/8' },48],49en0: [50{ address: '192.168.1.20', netmask: '255.255.255.0', family: 'IPv4', mac: '11:22:33:44:55:66', internal: false, cidr: '192.168.1.20/24' },51],52}), {53local: ['ws://localhost:8081'],54network: ['ws://192.168.1.20:8081'],55});56});5758test('treats explicit non-loopback host as a network url', () => {59assert.deepStrictEqual(resolveServerUrls('example.test', 8081), {60local: [],61network: ['ws://example.test:8081'],62});63});64});656667