From 90abb702fae78b0df0d9bc24c36b044fb294cdbb Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 9 Nov 2018 15:23:48 +0100 Subject: [PATCH] #53526 Migrate from TPromise --- .../test/common/instantiationServiceMock.ts | 2 +- .../electron-browser/extensionsViews.ts | 19 ++++++++---- .../electron-browser/extensionsViews.test.ts | 29 ++++--------------- 3 files changed, 20 insertions(+), 30 deletions(-) diff --git a/src/vs/platform/instantiation/test/common/instantiationServiceMock.ts b/src/vs/platform/instantiation/test/common/instantiationServiceMock.ts index 94ed67017ac..0bef39df50b 100644 --- a/src/vs/platform/instantiation/test/common/instantiationServiceMock.ts +++ b/src/vs/platform/instantiation/test/common/instantiationServiceMock.ts @@ -4,11 +4,11 @@ *--------------------------------------------------------------------------------------------*/ import * as sinon from 'sinon'; -import { TPromise } from 'vs/base/common/winjs.base'; import * as types from 'vs/base/common/types'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { ServiceIdentifier } from 'vs/platform/instantiation/common/instantiation'; +import { TPromise } from 'vs/base/common/winjs.base'; interface IServiceMock { id: ServiceIdentifier; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts index 4f07b8c30af..83ba6083166 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts @@ -48,7 +48,6 @@ export class ExtensionsListView extends ViewletPanel { private badge: CountBadge; protected badgeContainer: HTMLElement; private list: WorkbenchPagedList; - private searchExperiments: IExperiment[] = []; constructor( private options: IViewletViewOptions, @@ -68,7 +67,6 @@ export class ExtensionsListView extends ViewletPanel { @IExperimentService private experimentService: IExperimentService ) { super({ ...(options as IViewletPanelOptions), ariaHeaderLabel: options.title }, keybindingService, contextMenuService, configurationService); - this.experimentService.getExperimentsByType(ExperimentActionType.ExtensionSearchResults).then(result => this.searchExperiments = result); } protected renderHeader(container: HTMLElement): void { @@ -361,10 +359,11 @@ export class ExtensionsListView extends ViewletPanel { if (text) { options = assign(options, { text: text.substr(0, 350), source: 'searchText' }); if (!hasUserDefinedSortOrder) { - for (let i = 0; i < this.searchExperiments.length; i++) { - if (text.toLowerCase() === this.searchExperiments[i].action.properties['searchText'] && Array.isArray(this.searchExperiments[i].action.properties['preferredResults'])) { - preferredResults = this.searchExperiments[i].action.properties['preferredResults']; - options.source += `-experiment-${this.searchExperiments[i].id}`; + const searchExperiments = await this.getSearchExperiments(); + for (let i = 0; i < searchExperiments.length; i++) { + if (text.toLowerCase() === searchExperiments[i].action.properties['searchText'] && Array.isArray(searchExperiments[i].action.properties['preferredResults'])) { + preferredResults = searchExperiments[i].action.properties['preferredResults']; + options.source += `-experiment-${searchExperiments[i].id}`; break; } } @@ -392,6 +391,14 @@ export class ExtensionsListView extends ViewletPanel { } + private _searchExperiments: Thenable; + private getSearchExperiments(): Thenable { + if (!this._searchExperiments) { + this._searchExperiments = this.experimentService.getExperimentsByType(ExperimentActionType.ExtensionSearchResults); + } + return this._searchExperiments; + } + private sortExtensions(extensions: IExtension[], options: IQueryOptions): IExtension[] { switch (options.sortBy) { case SortBy.InstallCount: diff --git a/src/vs/workbench/parts/extensions/test/electron-browser/extensionsViews.test.ts b/src/vs/workbench/parts/extensions/test/electron-browser/extensionsViews.test.ts index 334db276af2..6f3ea74bee1 100644 --- a/src/vs/workbench/parts/extensions/test/electron-browser/extensionsViews.test.ts +++ b/src/vs/workbench/parts/extensions/test/electron-browser/extensionsViews.test.ts @@ -421,20 +421,20 @@ suite('ExtensionsListView Tests', () => { test('Test preferred search experiment', () => { const searchText = 'search-me'; - const realResults = [ + const actual = [ fileBasedRecommendationA, workspaceRecommendationA, otherRecommendationA, workspaceRecommendationB ]; - const preferredResults = [ + const expected = [ workspaceRecommendationA, workspaceRecommendationB, fileBasedRecommendationA, otherRecommendationA ]; - const queryTarget = instantiationService.stubPromise(IExtensionGalleryService, 'query', aPage(...realResults)); + const queryTarget = instantiationService.stubPromise(IExtensionGalleryService, 'query', aPage(...actual)); const experimentTarget = instantiationService.stubPromise(IExperimentService, 'getExperimentsByType', [{ id: 'someId', enabled: true, @@ -461,9 +461,9 @@ suite('ExtensionsListView Tests', () => { assert.ok(experimentTarget.calledOnce); assert.ok(queryTarget.calledOnce); assert.equal(options.text, searchText); - assert.equal(result.length, preferredResults.length); - for (let i = 0; i < preferredResults.length; i++) { - assert.equal(result.get(i).id, preferredResults[i].identifier.id); + assert.equal(result.length, expected.length); + for (let i = 0; i < expected.length; i++) { + assert.equal(result.get(i).id, expected[i].identifier.id); } }); }); @@ -478,22 +478,6 @@ suite('ExtensionsListView Tests', () => { ]; const queryTarget = instantiationService.stubPromise(IExtensionGalleryService, 'query', aPage(...realResults)); - const experimentTarget = instantiationService.stubPromise(IExperimentService, 'getExperimentsByType', [{ - id: 'someId', - enabled: true, - state: ExperimentState.Run, - action: { - type: ExperimentActionType.ExtensionSearchResults, - properties: { - searchText: 'search-me', - preferredResults: [ - workspaceRecommendationA.identifier.id, - 'something-that-wasnt-in-first-page', - workspaceRecommendationB.identifier.id - ] - } - } - }]); testableView.dispose(); testableView = instantiationService.createInstance(ExtensionsListView, {}); @@ -501,7 +485,6 @@ suite('ExtensionsListView Tests', () => { return testableView.show('search-me @sort:installs').then(result => { const options: IQueryOptions = queryTarget.args[0][0]; - assert.ok(experimentTarget.calledOnce); assert.ok(queryTarget.calledOnce); assert.equal(options.text, searchText); assert.equal(result.length, realResults.length);