diff --git a/src/vs/workbench/test/electron-browser/api/extHostLanguageFeatures.test.ts b/src/vs/workbench/test/electron-browser/api/extHostLanguageFeatures.test.ts index eaed58459108b84b004be2a738c89e56848a3fb4..49a7be6f3ddde4781d38163be7ec0eed70fc3ab0 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostLanguageFeatures.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostLanguageFeatures.test.ts @@ -733,24 +733,40 @@ suite('ExtHostLanguageFeatures', function () { // --- rename - test('Rename, evil provider 1/2', function () { + test('Rename, evil provider 0/2', function () { disposables.push(extHost.registerRenameProvider(defaultSelector, { provideRenameEdits(): any { - throw Error('evil'); + throw new class Foo { }; } })); return threadService.sync().then(() => { return rename(model, new EditorPosition(1, 1), 'newName').then(value => { - throw new Error(''); + throw Error(); }, err => { // expected }); }); }); + test('Rename, evil provider 1/2', function () { + + disposables.push(extHost.registerRenameProvider(defaultSelector, { + provideRenameEdits(): any { + throw Error('evil'); + } + })); + + return threadService.sync().then(() => { + + return rename(model, new EditorPosition(1, 1), 'newName').then(value => { + assert.equal(value.rejectReason, 'evil'); + }); + }); + }); + test('Rename, evil provider 2/2', function () { disposables.push(extHost.registerRenameProvider('*', {