Path: blob/main/src/vs/workbench/contrib/debug/test/browser/rawDebugSession.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 { mock, mockObject } from '../../../../../base/test/common/mock.js';7import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';8import { IExtensionHostDebugService } from '../../../../../platform/debug/common/extensionHostDebug.js';9import { IDialogService } from '../../../../../platform/dialogs/common/dialogs.js';10import { INotificationService } from '../../../../../platform/notification/common/notification.js';11import { IOpenerService } from '../../../../../platform/opener/common/opener.js';12import { RawDebugSession } from '../../browser/rawDebugSession.js';13import { IDebugger } from '../../common/debug.js';14import { MockDebugAdapter } from '../common/mockDebug.js';1516suite('RawDebugSession', () => {17const disposables = ensureNoDisposablesAreLeakedInTestSuite();1819function createTestObjects() {20const debugAdapter = new MockDebugAdapter();21const dbgr = mockObject<IDebugger>()({22type: 'mock-debug'23});2425const session = new RawDebugSession(26debugAdapter,27dbgr as any as IDebugger,28'sessionId',29'name',30new (mock<IExtensionHostDebugService>()),31new (mock<IOpenerService>()),32new (mock<INotificationService>()),33new (mock<IDialogService>()));34disposables.add(session);35disposables.add(debugAdapter);3637return { debugAdapter, dbgr };38}3940test('handles startDebugging request success', async () => {41const { debugAdapter, dbgr } = createTestObjects();42dbgr.startDebugging.returns(Promise.resolve(true));4344debugAdapter.sendRequestBody('startDebugging', {45request: 'launch',46configuration: {47type: 'some-other-type'48}49} as DebugProtocol.StartDebuggingRequestArguments);50const response = await debugAdapter.waitForResponseFromClient('startDebugging');51assert.strictEqual(response.command, 'startDebugging');52assert.strictEqual(response.success, true);53});5455test('handles startDebugging request failure', async () => {56const { debugAdapter, dbgr } = createTestObjects();57dbgr.startDebugging.returns(Promise.resolve(false));5859debugAdapter.sendRequestBody('startDebugging', {60request: 'launch',61configuration: {62type: 'some-other-type'63}64} as DebugProtocol.StartDebuggingRequestArguments);65const response = await debugAdapter.waitForResponseFromClient('startDebugging');66assert.strictEqual(response.command, 'startDebugging');67assert.strictEqual(response.success, false);68});69});707172