Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/test/smoke/src/areas/terminal/terminal-editors.test.ts
3520 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 { Application, Terminal, TerminalCommandId, TerminalCommandIdWithValue, SettingsEditor } from '../../../../automation';
7
import { setTerminalTestSettings } from './terminal-helpers';
8
9
export function setup(options?: { skipSuite: boolean }) {
10
(options?.skipSuite ? describe.skip : describe)('Terminal Editors', () => {
11
let app: Application;
12
let terminal: Terminal;
13
let settingsEditor: SettingsEditor;
14
15
// Acquire automation API
16
before(async function () {
17
app = this.app as Application;
18
terminal = app.workbench.terminal;
19
settingsEditor = app.workbench.settingsEditor;
20
await setTerminalTestSettings(app);
21
});
22
23
after(async function () {
24
await settingsEditor.clearUserSettings();
25
});
26
27
it('should update color of the tab', async () => {
28
await terminal.runCommand(TerminalCommandId.CreateNewEditor);
29
const color = 'Cyan';
30
await terminal.runCommandWithValue(TerminalCommandIdWithValue.ChangeColor, color);
31
await terminal.assertSingleTab({ color }, true);
32
});
33
34
it('should rename the tab', async () => {
35
await terminal.runCommand(TerminalCommandId.CreateNewEditor);
36
const name = 'my terminal name';
37
await terminal.runCommandWithValue(TerminalCommandIdWithValue.Rename, name);
38
await terminal.assertSingleTab({ name }, true);
39
});
40
41
it('should show the panel when the terminal is moved there and close the editor', async () => {
42
await terminal.runCommand(TerminalCommandId.CreateNewEditor);
43
await terminal.runCommand(TerminalCommandId.MoveToPanel);
44
await terminal.assertSingleTab({});
45
});
46
47
it('should open a terminal in a new group for open to the side', async () => {
48
await terminal.runCommand(TerminalCommandId.CreateNewEditor);
49
await terminal.runCommand(TerminalCommandId.SplitEditor);
50
await terminal.assertEditorGroupCount(2);
51
});
52
53
it('should open a terminal in a new group when the split button is pressed', async () => {
54
await terminal.runCommand(TerminalCommandId.CreateNewEditor);
55
await terminal.clickSplitButton();
56
await terminal.assertEditorGroupCount(2);
57
});
58
59
it('should create new terminals in the active editor group via command', async () => {
60
await terminal.runCommand(TerminalCommandId.CreateNewEditor);
61
await terminal.runCommand(TerminalCommandId.CreateNewEditor);
62
await terminal.assertEditorGroupCount(1);
63
});
64
65
it('should create new terminals in the active editor group via plus button', async () => {
66
await terminal.runCommand(TerminalCommandId.CreateNewEditor);
67
await terminal.clickPlusButton();
68
await terminal.assertEditorGroupCount(1);
69
});
70
71
it('should create a terminal in the editor area by default', async () => {
72
await app.workbench.settingsEditor.addUserSetting('terminal.integrated.defaultLocation', '"editor"');
73
// Close the settings editor
74
await app.workbench.quickaccess.runCommand('workbench.action.closeAllEditors');
75
await terminal.createTerminal('editor');
76
await terminal.assertEditorGroupCount(1);
77
await terminal.assertTerminalViewHidden();
78
await app.workbench.settingsEditor.clearUserSettings();
79
});
80
});
81
}
82
83