mirror of
https://github.com/Microsoft/vscode
synced 2024-10-05 19:02:54 +00:00
parent
ef440e563d
commit
78d7ece7aa
|
@ -3,13 +3,12 @@
|
|||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { ok, strictEqual } from 'assert';
|
||||
import { ParsedArgs } from 'minimist';
|
||||
import { Application, Terminal, TerminalCommandId, TerminalCommandIdWithValue } from '../../../../automation/out';
|
||||
import { afterSuite, beforeSuite } from '../../utils';
|
||||
|
||||
export function setup(opts: ParsedArgs) {
|
||||
describe.only('Terminal Persistence', () => {
|
||||
describe('Terminal Persistence', () => {
|
||||
let terminal: Terminal;
|
||||
|
||||
beforeSuite(opts);
|
||||
|
@ -36,19 +35,20 @@ export function setup(opts: ParsedArgs) {
|
|||
[{ name: '.*' }]
|
||||
]);
|
||||
|
||||
const groups = await terminal.getTerminalGroups();
|
||||
strictEqual(groups.length, 1);
|
||||
strictEqual(groups[0].length, 1);
|
||||
ok(groups[0][0].name!.length > 0);
|
||||
const detachedName = groups[0][0].name!;
|
||||
console.log('detached name', detachedName);
|
||||
// Get the terminal name
|
||||
await terminal.assertTerminalGroups([
|
||||
[{ name: '.*' }]
|
||||
]);
|
||||
const name = (await terminal.getTerminalGroups())[0][0].name!;
|
||||
|
||||
// Detach
|
||||
await terminal.runCommand(TerminalCommandId.DetachSession);
|
||||
await terminal.assertTerminalViewHidden();
|
||||
|
||||
await terminal.runCommandWithValue(TerminalCommandIdWithValue.AttachToSession, detachedName);
|
||||
// Attach
|
||||
await terminal.runCommandWithValue(TerminalCommandIdWithValue.AttachToSession, name);
|
||||
await terminal.assertTerminalGroups([
|
||||
[{ name: detachedName }]
|
||||
[{ name }]
|
||||
]);
|
||||
});
|
||||
|
||||
|
@ -59,24 +59,55 @@ export function setup(opts: ParsedArgs) {
|
|||
[{ name: '.*' }]
|
||||
]);
|
||||
|
||||
const groups = await terminal.getTerminalGroups();
|
||||
strictEqual(groups.length, 1);
|
||||
strictEqual(groups[0].length, 1);
|
||||
ok(groups[0][0].name!.length > 0);
|
||||
const detachedName = groups[0][0].name!;
|
||||
// Get the terminal name
|
||||
await terminal.assertTerminalGroups([
|
||||
[{ name: '.*' }]
|
||||
]);
|
||||
const name = (await terminal.getTerminalGroups())[0][0].name!;
|
||||
|
||||
// Write in terminal
|
||||
await terminal.runCommandInTerminal('echo terminal_test_content');
|
||||
await terminal.waitForTerminalText(buffer => buffer.some(e => e.includes('terminal_test_content')));
|
||||
|
||||
// Detach
|
||||
await terminal.runCommand(TerminalCommandId.DetachSession);
|
||||
await terminal.assertTerminalViewHidden();
|
||||
|
||||
await terminal.runCommandWithValue(TerminalCommandIdWithValue.AttachToSession, detachedName);
|
||||
// Attach
|
||||
await terminal.runCommandWithValue(TerminalCommandIdWithValue.AttachToSession, name);
|
||||
await terminal.assertTerminalGroups([
|
||||
[{ name: detachedName }]
|
||||
[{ name }]
|
||||
]);
|
||||
await terminal.waitForTerminalText(buffer => buffer.some(e => e.includes('terminal_test_content')));
|
||||
});
|
||||
|
||||
// TODO: This is currently flaky because it takes time to send over the new icon to the backend
|
||||
it.skip('should persist terminal icon', async () => {
|
||||
await terminal.runCommand(TerminalCommandId.CreateNew);
|
||||
// TODO: Handle passing in an actual regex, not string
|
||||
await terminal.assertTerminalGroups([
|
||||
[{ name: '.*' }]
|
||||
]);
|
||||
|
||||
// Get the terminal name
|
||||
const name = (await terminal.getTerminalGroups())[0][0].name!;
|
||||
|
||||
// Set the icon
|
||||
await terminal.runCommandWithValue(TerminalCommandIdWithValue.ChangeIcon, 'symbol-method');
|
||||
await terminal.assertSingleTab({ icon: 'symbol-method' });
|
||||
|
||||
// Detach
|
||||
await terminal.runCommand(TerminalCommandId.DetachSession);
|
||||
await terminal.assertTerminalViewHidden();
|
||||
|
||||
// Attach
|
||||
await terminal.runCommandWithValue(TerminalCommandIdWithValue.AttachToSession, name);
|
||||
await terminal.assertTerminalGroups([
|
||||
[{ name }]
|
||||
]);
|
||||
// TODO: This fails due to a bug
|
||||
await terminal.assertSingleTab({ icon: 'symbol-method' });
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -17,17 +17,17 @@ import fetch from 'node-fetch';
|
|||
import { Quality, ApplicationOptions, MultiLogger, Logger, ConsoleLogger, FileLogger } from '../../automation';
|
||||
|
||||
import { setup as setupDataMigrationTests } from './areas/workbench/data-migration.test';
|
||||
import { setup as setupDataLossTests } from './areas/workbench/data-loss.test';
|
||||
import { setup as setupPreferencesTests } from './areas/preferences/preferences.test';
|
||||
import { setup as setupSearchTests } from './areas/search/search.test';
|
||||
import { setup as setupNotebookTests } from './areas/notebook/notebook.test';
|
||||
import { setup as setupLanguagesTests } from './areas/languages/languages.test';
|
||||
import { setup as setupEditorTests } from './areas/editor/editor.test';
|
||||
import { setup as setupStatusbarTests } from './areas/statusbar/statusbar.test';
|
||||
import { setup as setupExtensionTests } from './areas/extensions/extensions.test';
|
||||
import { setup as setupMultirootTests } from './areas/multiroot/multiroot.test';
|
||||
import { setup as setupLocalizationTests } from './areas/workbench/localization.test';
|
||||
import { setup as setupLaunchTests } from './areas/workbench/launch.test';
|
||||
// import { setup as setupDataLossTests } from './areas/workbench/data-loss.test';
|
||||
// import { setup as setupPreferencesTests } from './areas/preferences/preferences.test';
|
||||
// import { setup as setupSearchTests } from './areas/search/search.test';
|
||||
// import { setup as setupNotebookTests } from './areas/notebook/notebook.test';
|
||||
// import { setup as setupLanguagesTests } from './areas/languages/languages.test';
|
||||
// import { setup as setupEditorTests } from './areas/editor/editor.test';
|
||||
// import { setup as setupStatusbarTests } from './areas/statusbar/statusbar.test';
|
||||
// import { setup as setupExtensionTests } from './areas/extensions/extensions.test';
|
||||
// import { setup as setupMultirootTests } from './areas/multiroot/multiroot.test';
|
||||
// import { setup as setupLocalizationTests } from './areas/workbench/localization.test';
|
||||
// import { setup as setupLaunchTests } from './areas/workbench/launch.test';
|
||||
import { setup as setupTerminalProfileTests } from './areas/terminal/terminal-profiles.test';
|
||||
import { setup as setupTerminalTabsTests } from './areas/terminal/terminal-tabs.test';
|
||||
import { setup as setupTerminalEditorsTests } from './areas/terminal/terminal-editors.test';
|
||||
|
@ -356,19 +356,19 @@ if (!opts.web && opts['build'] && !opts['remote']) {
|
|||
}
|
||||
|
||||
describe(`VSCode Smoke Tests (${opts.web ? 'Web' : 'Electron'})`, () => {
|
||||
if (!opts.web) { setupDataLossTests(opts); }
|
||||
if (!opts.web) { setupPreferencesTests(opts); }
|
||||
setupSearchTests(opts);
|
||||
setupNotebookTests(opts);
|
||||
setupLanguagesTests(opts);
|
||||
setupEditorTests(opts);
|
||||
setupStatusbarTests(opts);
|
||||
setupExtensionTests(opts);
|
||||
if (!opts.web) { setupMultirootTests(opts); }
|
||||
if (!opts.web) { setupLocalizationTests(opts); }
|
||||
if (!opts.web) { setupLaunchTests(opts); }
|
||||
// if (!opts.web) { setupDataLossTests(opts); }
|
||||
// if (!opts.web) { setupPreferencesTests(opts); }
|
||||
// setupSearchTests(opts);
|
||||
// setupNotebookTests(opts);
|
||||
// setupLanguagesTests(opts);
|
||||
// setupEditorTests(opts);
|
||||
// setupStatusbarTests(opts);
|
||||
// setupExtensionTests(opts);
|
||||
// if (!opts.web) { setupMultirootTests(opts); }
|
||||
// if (!opts.web) { setupLocalizationTests(opts); }
|
||||
// if (!opts.web) { setupLaunchTests(opts); }
|
||||
|
||||
// TODO: Enable terminal tests for non-web
|
||||
// TODO: Enable terminal tests for non-web when it moved to playwright
|
||||
if (opts.web) { setupTerminalProfileTests(opts); }
|
||||
if (opts.web) { setupTerminalTabsTests(opts); }
|
||||
if (opts.web) { setupTerminalEditorsTests(opts); }
|
||||
|
|
Loading…
Reference in a new issue