Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/debug/test/browser/debugViewModel.test.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';
8
import { MockContextKeyService } from '../../../../../platform/keybinding/test/common/mockKeybindingService.js';
9
import { NullLogService } from '../../../../../platform/log/common/log.js';
10
import { Expression, StackFrame, Thread } from '../../common/debugModel.js';
11
import { Source } from '../../common/debugSource.js';
12
import { ViewModel } from '../../common/debugViewModel.js';
13
import { mockUriIdentityService } from './mockDebugModel.js';
14
import { MockSession } from '../common/mockDebug.js';
15
16
suite('Debug - View Model', () => {
17
let model: ViewModel;
18
19
setup(() => {
20
model = new ViewModel(new MockContextKeyService());
21
});
22
23
ensureNoDisposablesAreLeakedInTestSuite();
24
25
test('focused stack frame', () => {
26
assert.strictEqual(model.focusedStackFrame, undefined);
27
assert.strictEqual(model.focusedThread, undefined);
28
const session = new MockSession();
29
const thread = new Thread(session, 'myThread', 1);
30
const source = new Source({
31
name: 'internalModule.js',
32
sourceReference: 11,
33
presentationHint: 'deemphasize'
34
}, 'aDebugSessionId', mockUriIdentityService, new NullLogService());
35
const frame = new StackFrame(thread, 1, source, 'app.js', 'normal', { startColumn: 1, startLineNumber: 1, endColumn: 1, endLineNumber: 1 }, 0, true);
36
model.setFocus(frame, thread, session, false);
37
38
assert.strictEqual(model.focusedStackFrame!.getId(), frame.getId());
39
assert.strictEqual(model.focusedThread!.threadId, 1);
40
assert.strictEqual(model.focusedSession!.getId(), session.getId());
41
});
42
43
test('selected expression', () => {
44
assert.strictEqual(model.getSelectedExpression(), undefined);
45
const expression = new Expression('my expression');
46
model.setSelectedExpression(expression, false);
47
48
assert.strictEqual(model.getSelectedExpression()?.expression, expression);
49
});
50
51
test('multi session view and changed workbench state', () => {
52
assert.strictEqual(model.isMultiSessionView(), false);
53
model.setMultiSessionView(true);
54
assert.strictEqual(model.isMultiSessionView(), true);
55
});
56
});
57
58