From f2d49ea57e58d6e7e0045ac68257e06fd72f95bb Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 23 Jun 2020 13:19:26 +0200 Subject: [PATCH] add debug logging for https://github.com/microsoft/vscode/issues/100828 --- .../src/singlefolder-tests/window.test.ts | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts index a08e6dd7943..ecc319f4106 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/window.test.ts @@ -4,10 +4,11 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { workspace, window, commands, ViewColumn, TextEditorViewColumnChangeEvent, Uri, Selection, Position, CancellationTokenSource, TextEditorSelectionChangeKind, QuickPickItem } from 'vscode'; +import { workspace, window, commands, ViewColumn, TextEditorViewColumnChangeEvent, Uri, Selection, Position, CancellationTokenSource, TextEditorSelectionChangeKind, QuickPickItem, TextEditor } from 'vscode'; import { join } from 'path'; import { closeAllEditors, pathEquals, createRandomFile } from '../utils'; + suite('vscode API - window', () => { teardown(closeAllEditors); @@ -145,22 +146,36 @@ suite('vscode API - window', () => { }); }); - // test('active editor not always correct... #49125', async function () { - // const randomFile1 = await createRandomFile(); - // const randomFile2 = await createRandomFile(); + test('active editor not always correct... #49125', async function () { - // const [docA, docB] = await Promise.all([ - // workspace.openTextDocument(randomFile1), - // workspace.openTextDocument(randomFile2) - // ]); - // for (let c = 0; c < 4; c++) { - // let editorA = await window.showTextDocument(docA, ViewColumn.One); - // assert.equal(window.activeTextEditor, editorA); + function assertActiveEditor(editor: TextEditor) { + if (window.activeTextEditor === editor) { + assert.ok(true); + return; + } + function printEditor(editor: TextEditor): string { + return `doc: ${editor.document.uri.toString()}, column: ${editor.viewColumn}, active: ${editor === window.activeTextEditor}`; + } + const visible = window.visibleTextEditors.map(editor => printEditor(editor)); + assert.ok(false, `ACTIVE editor should be ${printEditor(editor)}, BUT HAVING ${visible.join(', ')}`); - // let editorB = await window.showTextDocument(docB, ViewColumn.Two); - // assert.equal(window.activeTextEditor, editorB); - // } - // }); + } + + const randomFile1 = await createRandomFile(); + const randomFile2 = await createRandomFile(); + + const [docA, docB] = await Promise.all([ + workspace.openTextDocument(randomFile1), + workspace.openTextDocument(randomFile2) + ]); + for (let c = 0; c < 4; c++) { + let editorA = await window.showTextDocument(docA, ViewColumn.One); + assertActiveEditor(editorA); + + let editorB = await window.showTextDocument(docB, ViewColumn.Two); + assertActiveEditor(editorB); + } + }); test('default column when opening a file', async () => { const [docA, docB, docC] = await Promise.all([