diff --git a/src/vs/workbench/services/editor/test/browser/editorService.test.ts b/src/vs/workbench/services/editor/test/browser/editorService.test.ts index 5445b7ff1d271..99cdd078bf162 100644 --- a/src/vs/workbench/services/editor/test/browser/editorService.test.ts +++ b/src/vs/workbench/services/editor/test/browser/editorService.test.ts @@ -196,6 +196,36 @@ suite('EditorService', () => { visibleEditorChangeListener.dispose(); }); + test('openEditor() - same input does not cancel previous one - https://github.com/microsoft/vscode/issues/136684', async () => { + const [, service] = await createEditorService(); + + let input = new TestFileEditorInput(URI.parse('my://resource-basics'), TEST_EDITOR_INPUT_ID); + + let editorP1 = service.openEditor(input, { pinned: true }); + let editorP2 = service.openEditor(input, { pinned: true }); + + let editor1 = await editorP1; + assert.strictEqual(editor1?.input, input); + + let editor2 = await editorP2; + assert.strictEqual(editor2?.input, input); + + assert.ok(editor2.group); + await editor2.group.closeAllEditors(); + + input = new TestFileEditorInput(URI.parse('my://resource-basics'), TEST_EDITOR_INPUT_ID); + let inputSame = new TestFileEditorInput(URI.parse('my://resource-basics'), TEST_EDITOR_INPUT_ID); + + editorP1 = service.openEditor(input, { pinned: true }); + editorP2 = service.openEditor(inputSame, { pinned: true }); + + editor1 = await editorP1; + assert.strictEqual(editor1?.input, input); + + editor2 = await editorP2; + assert.strictEqual(editor2?.input, input); + }); + test('openEditor() - locked groups', async () => { disposables.add(registerTestFileEditor());