From b62dbb65fb227511e109c9c699ca10197b1c12e4 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 25 Jan 2018 13:21:35 +0100 Subject: [PATCH] fix tests --- src/vs/workbench/api/node/extHostWorkspace.ts | 4 ++- .../api/extHostWorkspace.test.ts | 35 ++++++++++++++----- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/vs/workbench/api/node/extHostWorkspace.ts b/src/vs/workbench/api/node/extHostWorkspace.ts index 6ff6107aa1f..30ff4932f13 100644 --- a/src/vs/workbench/api/node/extHostWorkspace.ts +++ b/src/vs/workbench/api/node/extHostWorkspace.ts @@ -177,7 +177,9 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape { } // Trigger on main side - this._proxy.$updateWorkspaceFolders(extensionName, index, deleteCount, validatedDistinctWorkspaceFoldersToAdd).then(null, onUnexpectedError); + if (this._proxy) { + this._proxy.$updateWorkspaceFolders(extensionName, index, deleteCount, validatedDistinctWorkspaceFoldersToAdd).then(null, onUnexpectedError); + } // Try to accept directly const accepted = this.trySetWorkspaceData({ id: this._actualWorkspace.id, name: this._actualWorkspace.name, configuration: this._actualWorkspace.configuration, folders: newWorkspaceFolders } as IWorkspaceData); diff --git a/src/vs/workbench/test/electron-browser/api/extHostWorkspace.test.ts b/src/vs/workbench/test/electron-browser/api/extHostWorkspace.test.ts index 549c0ad41a4..15c870c89c8 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostWorkspace.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostWorkspace.test.ts @@ -263,7 +263,13 @@ suite('ExtHostWorkspace', function () { } }; - let ws = new ExtHostWorkspace(new TestRPCProtocol(), { id: 'foo', name: 'Test', folders: [] }); + const protocol = { + getProxy: () => { return undefined; }, + set: undefined, + assertRegistered: undefined + }; + + const ws = new ExtHostWorkspace(protocol, { id: 'foo', name: 'Test', folders: [] }); // // Add one folder @@ -374,18 +380,31 @@ suite('ExtHostWorkspace', function () { finish(); }); - test('Multiroot change event is immutable', function () { + test('Multiroot change event is immutable', function (done) { + let finished = false; + const finish = (error?) => { + if (!finished) { + finished = true; + done(error); + } + }; + let ws = new ExtHostWorkspace(new TestRPCProtocol(), { id: 'foo', name: 'Test', folders: [] }); let sub = ws.onDidChangeWorkspace(e => { - assert.throws(() => { - (e).added = []; - }); - assert.throws(() => { - (e.added)[0] = null; - }); + try { + assert.throws(() => { + (e).added = []; + }); + assert.throws(() => { + (e.added)[0] = null; + }); + } catch (error) { + finish(error); + } }); ws.$acceptWorkspaceData({ id: 'foo', name: 'Test', folders: [] }); sub.dispose(); + finish(); }); test('`vscode.workspace.getWorkspaceFolder(file)` don\'t return workspace folder when file open from command line. #36221', function () {