From a7c4a259ad593cbe682cfe1f477950071801a297 Mon Sep 17 00:00:00 2001 From: Leila Lali Date: Mon, 4 May 2020 17:00:51 -0700 Subject: [PATCH] Fixed an issue with setting the default location in package management (#10263) --- .../managePackagesDialogModel.ts | 2 +- .../managePackagesDialogModel.test.ts | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/extensions/notebook/src/dialog/managePackages/managePackagesDialogModel.ts b/extensions/notebook/src/dialog/managePackages/managePackagesDialogModel.ts index 16ee23fa04..d9b101aa76 100644 --- a/extensions/notebook/src/dialog/managePackages/managePackagesDialogModel.ts +++ b/extensions/notebook/src/dialog/managePackages/managePackagesDialogModel.ts @@ -133,7 +133,7 @@ export class ManagePackagesDialogModel { * Returns the default location */ public get defaultLocation(): string | undefined { - return this.options.defaultLocation || this.targetLocationTypes.length > 0 ? this.targetLocationTypes[0] : undefined; + return this.options.defaultLocation || (this.targetLocationTypes.length > 0 ? this.targetLocationTypes[0] : undefined); } /** diff --git a/extensions/notebook/src/test/managePackages/managePackagesDialogModel.test.ts b/extensions/notebook/src/test/managePackages/managePackagesDialogModel.test.ts index 2d7d03459b..7ea7f6a894 100644 --- a/extensions/notebook/src/test/managePackages/managePackagesDialogModel.test.ts +++ b/extensions/notebook/src/test/managePackages/managePackagesDialogModel.test.ts @@ -199,6 +199,36 @@ describe('Manage Packages', () => { should.deepEqual(model.getPackageTypes('location1'), [{providerId: 'providerId1', packageType: 'package-type1'}]); }); + it('Should set default location to one set in given options', async function (): Promise { + let testContext1 = createContext(); + testContext1.provider.providerId = 'providerId1'; + testContext1.provider.packageTarget = { + location: 'location1', + packageType: 'package-type1' + }; + + let testContext2 = createContext(); + testContext2.provider.providerId = 'providerId2'; + testContext2.provider.packageTarget = { + location: 'location1', + packageType: 'package-type2' + }; + testContext2.provider.canUseProvider = () => { return Promise.resolve(false); }; + + let providers = new Map(); + providers.set(testContext1.provider.providerId, createProvider(testContext1)); + providers.set(testContext2.provider.providerId, createProvider(testContext2)); + + let model = new ManagePackagesDialogModel(jupyterServerInstallation, providers, { + defaultLocation: testContext2.provider.packageTarget.location, + defaultProviderId: testContext2.provider.providerId + }); + + await model.init(); + should.equal(model.defaultLocation, testContext2.provider.packageTarget.location); + should.deepEqual(model.getPackageTypes('location1'), [{providerId: 'providerId1', packageType: 'package-type1'}]); + }); + it('changeProvider should change current provider successfully', async function (): Promise { let testContext1 = createContext(); testContext1.provider.providerId = 'providerId1';