Path: blob/main/src/vs/platform/environment/test/node/environmentService.test.ts
3296 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 { parseExtensionHostDebugPort } from '../../common/environmentService.js';8import { OPTIONS, parseArgs } from '../../node/argv.js';9import { NativeEnvironmentService } from '../../node/environmentService.js';10import product from '../../../product/common/product.js';1112suite('EnvironmentService', () => {1314test('parseExtensionHostPort when built', () => {15const parse = (a: string[]) => parseExtensionHostDebugPort(parseArgs(a, OPTIONS), true);1617assert.deepStrictEqual(parse([]), { port: null, break: false, env: undefined, debugId: undefined });18assert.deepStrictEqual(parse(['--debugPluginHost']), { port: null, break: false, env: undefined, debugId: undefined });19assert.deepStrictEqual(parse(['--debugPluginHost=1234']), { port: 1234, break: false, env: undefined, debugId: undefined });20assert.deepStrictEqual(parse(['--debugBrkPluginHost']), { port: null, break: false, env: undefined, debugId: undefined });21assert.deepStrictEqual(parse(['--debugBrkPluginHost=5678']), { port: 5678, break: true, env: undefined, debugId: undefined });22assert.deepStrictEqual(parse(['--debugPluginHost=1234', '--debugBrkPluginHost=5678', '--debugId=7']), { port: 5678, break: true, env: undefined, debugId: '7' });2324assert.deepStrictEqual(parse(['--inspect-extensions']), { port: null, break: false, env: undefined, debugId: undefined });25assert.deepStrictEqual(parse(['--inspect-extensions=1234']), { port: 1234, break: false, env: undefined, debugId: undefined });26assert.deepStrictEqual(parse(['--inspect-brk-extensions']), { port: null, break: false, env: undefined, debugId: undefined });27assert.deepStrictEqual(parse(['--inspect-brk-extensions=5678']), { port: 5678, break: true, env: undefined, debugId: undefined });28assert.deepStrictEqual(parse(['--inspect-extensions=1234', '--inspect-brk-extensions=5678', '--debugId=7']), { port: 5678, break: true, env: undefined, debugId: '7' });29assert.deepStrictEqual(parse(['--inspect-extensions=1234', '--inspect-brk-extensions=5678', '--extensionEnvironment={"COOL":"1"}']), { port: 5678, break: true, env: { COOL: '1' }, debugId: undefined });30});3132test('parseExtensionHostPort when unbuilt', () => {33const parse = (a: string[]) => parseExtensionHostDebugPort(parseArgs(a, OPTIONS), false);3435assert.deepStrictEqual(parse([]), { port: 5870, break: false, env: undefined, debugId: undefined });36assert.deepStrictEqual(parse(['--debugPluginHost']), { port: 5870, break: false, env: undefined, debugId: undefined });37assert.deepStrictEqual(parse(['--debugPluginHost=1234']), { port: 1234, break: false, env: undefined, debugId: undefined });38assert.deepStrictEqual(parse(['--debugBrkPluginHost']), { port: 5870, break: false, env: undefined, debugId: undefined });39assert.deepStrictEqual(parse(['--debugBrkPluginHost=5678']), { port: 5678, break: true, env: undefined, debugId: undefined });40assert.deepStrictEqual(parse(['--debugPluginHost=1234', '--debugBrkPluginHost=5678', '--debugId=7']), { port: 5678, break: true, env: undefined, debugId: '7' });4142assert.deepStrictEqual(parse(['--inspect-extensions']), { port: 5870, break: false, env: undefined, debugId: undefined });43assert.deepStrictEqual(parse(['--inspect-extensions=1234']), { port: 1234, break: false, env: undefined, debugId: undefined });44assert.deepStrictEqual(parse(['--inspect-brk-extensions']), { port: 5870, break: false, env: undefined, debugId: undefined });45assert.deepStrictEqual(parse(['--inspect-brk-extensions=5678']), { port: 5678, break: true, env: undefined, debugId: undefined });46assert.deepStrictEqual(parse(['--inspect-extensions=1234', '--inspect-brk-extensions=5678', '--debugId=7']), { port: 5678, break: true, env: undefined, debugId: '7' });47});4849// https://github.com/microsoft/vscode/issues/7844050test('careful with boolean file names', function () {51let actual = parseArgs(['-r', 'arg.txt'], OPTIONS);52assert(actual['reuse-window']);53assert.deepStrictEqual(actual._, ['arg.txt']);5455actual = parseArgs(['-r', 'true.txt'], OPTIONS);56assert(actual['reuse-window']);57assert.deepStrictEqual(actual._, ['true.txt']);58});5960test('userDataDir', () => {61const service1 = new NativeEnvironmentService(parseArgs(process.argv, OPTIONS), { _serviceBrand: undefined, ...product });62assert.ok(service1.userDataPath.length > 0);6364const args = parseArgs(process.argv, OPTIONS);65args['user-data-dir'] = '/userDataDir/folder';6667const service2 = new NativeEnvironmentService(args, { _serviceBrand: undefined, ...product });68assert.notStrictEqual(service1.userDataPath, service2.userDataPath);69});7071ensureNoDisposablesAreLeakedInTestSuite();72});737475