mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-21 17:19:01 +01:00
Update tabs model to utilize the new API shape (#142668)
* Change shape of the tabs API * Disable tab tests for now * Add an onDidChangeTabGroup event * Optimize for group activate * Update events to no longer be an array * Further tab optimization
This commit is contained in:
@@ -371,6 +371,31 @@ suite('vscode API - window', () => {
|
||||
});
|
||||
|
||||
//#region Tabs API tests
|
||||
// eslint-disable-next-line code-no-test-only
|
||||
test.only('Tabs - move tab', async function () {
|
||||
const [docA, docB, docC] = await Promise.all([
|
||||
workspace.openTextDocument(await createRandomFile()),
|
||||
workspace.openTextDocument(await createRandomFile()),
|
||||
workspace.openTextDocument(await createRandomFile())
|
||||
]);
|
||||
|
||||
await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: false });
|
||||
await window.showTextDocument(docB, { viewColumn: ViewColumn.One, preview: false });
|
||||
await window.showTextDocument(docC, { viewColumn: ViewColumn.Two, preview: false });
|
||||
|
||||
const tabGroups = window.tabGroups;
|
||||
assert.strictEqual(tabGroups.all.length, 2);
|
||||
|
||||
const group1Tabs = tabGroups.all[0].tabs;
|
||||
assert.strictEqual(group1Tabs.length, 2);
|
||||
|
||||
const group2Tabs = tabGroups.all[1].tabs;
|
||||
assert.strictEqual(group2Tabs.length, 1);
|
||||
|
||||
await group1Tabs[0].move(1, ViewColumn.One);
|
||||
console.log('Tab moved - Integration test');
|
||||
});
|
||||
/*
|
||||
test('Tabs - Ensure tabs getter is correct', async function () {
|
||||
// Reduce test timeout as this test should be quick, so even with 3 retries it will be under 60s.
|
||||
this.timeout(10000);
|
||||
@@ -419,23 +444,29 @@ suite('vscode API - window', () => {
|
||||
workspace.openTextDocument(await createRandomFile()),
|
||||
]);
|
||||
|
||||
// Function to acquire the active tab within the active group
|
||||
const getActiveTabInActiveGroup = () => {
|
||||
const activeGroup = window.tabGroups.all.filter(group => group.isActive)[0];
|
||||
return activeGroup.activeTab;
|
||||
};
|
||||
|
||||
await window.showTextDocument(docA, { viewColumn: ViewColumn.One, preview: false });
|
||||
assert.ok(window.activeTab);
|
||||
assert.strictEqual(window.activeTab.resource?.toString(), docA.uri.toString());
|
||||
assert.ok(getActiveTabInActiveGroup());
|
||||
assert.strictEqual(getActiveTabInActiveGroup()?.resource?.toString(), docA.uri.toString());
|
||||
|
||||
await window.showTextDocument(docB, { viewColumn: ViewColumn.Two, preview: false });
|
||||
assert.ok(window.activeTab);
|
||||
assert.strictEqual(window.activeTab.resource?.toString(), docB.uri.toString());
|
||||
assert.ok(getActiveTabInActiveGroup());
|
||||
assert.strictEqual(getActiveTabInActiveGroup()?.resource?.toString(), docB.uri.toString());
|
||||
|
||||
await window.showTextDocument(docC, { viewColumn: ViewColumn.Three, preview: false });
|
||||
assert.ok(window.activeTab);
|
||||
assert.strictEqual(window.activeTab.resource?.toString(), docC.uri.toString());
|
||||
assert.ok(getActiveTabInActiveGroup());
|
||||
assert.strictEqual(getActiveTabInActiveGroup()?.resource?.toString(), docC.uri.toString());
|
||||
|
||||
await commands.executeCommand('workbench.action.closeActiveEditor');
|
||||
await commands.executeCommand('workbench.action.closeActiveEditor');
|
||||
await commands.executeCommand('workbench.action.closeActiveEditor');
|
||||
|
||||
assert.ok(!window.activeTab);
|
||||
assert.ok(!getActiveTabInActiveGroup());
|
||||
});
|
||||
|
||||
test('Tabs - Move Tab', async () => {
|
||||
@@ -448,6 +479,9 @@ suite('vscode API - window', () => {
|
||||
await window.showTextDocument(docB, { viewColumn: ViewColumn.One, preview: false });
|
||||
await window.showTextDocument(docC, { viewColumn: ViewColumn.Two, preview: false });
|
||||
|
||||
const getAllTabs = () => {
|
||||
|
||||
};
|
||||
let tabs = window.tabs;
|
||||
assert.strictEqual(tabs.length, 3);
|
||||
|
||||
@@ -512,7 +546,7 @@ suite('vscode API - window', () => {
|
||||
assert.strictEqual(tabs.length, 0);
|
||||
assert.ok(!window.activeTab);
|
||||
});
|
||||
|
||||
*/
|
||||
//#endregion
|
||||
|
||||
test('#7013 - input without options', function () {
|
||||
|
||||
Reference in New Issue
Block a user