From 586766954b897a43be6c272fc92739667eca35ae Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 13 Nov 2017 17:08:44 +0100 Subject: [PATCH] Tests for inspect in MR workspace --- .../configuration/common/configuration.ts | 2 +- .../common/configurationModels.ts | 12 ++--- .../node/configurationService.ts | 2 +- .../test/node/configurationService.test.ts | 49 +++++++++++++++++++ 4 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/vs/platform/configuration/common/configuration.ts b/src/vs/platform/configuration/common/configuration.ts index b5b9e722192..0b5ca4e333e 100644 --- a/src/vs/platform/configuration/common/configuration.ts +++ b/src/vs/platform/configuration/common/configuration.ts @@ -78,7 +78,7 @@ export interface IConfigurationService { reloadConfiguration(): TPromise; reloadConfiguration(folder: IWorkspaceFolder): TPromise; - inspect(key: string): { + inspect(key: string, overrides?: IConfigurationOverrides): { default: T, user: T, workspace: T, diff --git a/src/vs/platform/configuration/common/configurationModels.ts b/src/vs/platform/configuration/common/configurationModels.ts index 097c2225d06..e08e3c667ee 100644 --- a/src/vs/platform/configuration/common/configurationModels.ts +++ b/src/vs/platform/configuration/common/configurationModels.ts @@ -338,12 +338,12 @@ export class Configuration { const folderConfigurationModel = this.getFolderConfigurationModelForResource(overrides.resource, workspace); const memoryConfigurationModel = overrides.resource ? this._memoryConfigurationByResource.get(overrides.resource) || this._memoryConfiguration : this._memoryConfiguration; return { - default: getConfigurationValue(overrides.overrideIdentifier ? this._defaultConfiguration.freeze().override(overrides.overrideIdentifier).contents : this._defaultConfiguration.freeze().contents, key), - user: getConfigurationValue(overrides.overrideIdentifier ? this._userConfiguration.freeze().override(overrides.overrideIdentifier).contents : this._userConfiguration.freeze().contents, key), - workspace: workspace ? getConfigurationValue(overrides.overrideIdentifier ? this._workspaceConfiguration.freeze().override(overrides.overrideIdentifier).contents : this._workspaceConfiguration.freeze().contents, key) : void 0, //Check on workspace exists or not because _workspaceConfiguration is never null - workspaceFolder: folderConfigurationModel ? getConfigurationValue(overrides.overrideIdentifier ? folderConfigurationModel.freeze().override(overrides.overrideIdentifier).contents : folderConfigurationModel.freeze().contents, key) : void 0, - memory: getConfigurationValue(overrides.overrideIdentifier ? memoryConfigurationModel.freeze().override(overrides.overrideIdentifier).contents : memoryConfigurationModel.freeze().contents, key), - value: getConfigurationValue(consolidateConfigurationModel.contents, key) + default: overrides.overrideIdentifier ? this._defaultConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this._defaultConfiguration.freeze().getValue(key), + user: overrides.overrideIdentifier ? this._userConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this._userConfiguration.freeze().getValue(key), + workspace: workspace ? overrides.overrideIdentifier ? this._workspaceConfiguration.freeze().override(overrides.overrideIdentifier).getValue(key) : this._workspaceConfiguration.freeze().getValue(key) : void 0, //Check on workspace exists or not because _workspaceConfiguration is never null + workspaceFolder: folderConfigurationModel ? overrides.overrideIdentifier ? folderConfigurationModel.freeze().override(overrides.overrideIdentifier).getValue(key) : folderConfigurationModel.freeze().getValue(key) : void 0, + memory: overrides.overrideIdentifier ? memoryConfigurationModel.freeze().override(overrides.overrideIdentifier).getValue(key) : memoryConfigurationModel.freeze().getValue(key), + value: consolidateConfigurationModel.getValue(key) }; } diff --git a/src/vs/workbench/services/configuration/node/configurationService.ts b/src/vs/workbench/services/configuration/node/configurationService.ts index c1ceefa7f7e..999ca29090a 100644 --- a/src/vs/workbench/services/configuration/node/configurationService.ts +++ b/src/vs/workbench/services/configuration/node/configurationService.ts @@ -265,7 +265,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat memory?: T, value: T } { - return this._configuration.inspect(key); + return this._configuration.inspect(key, overrides); } keys(): { diff --git a/src/vs/workbench/services/configuration/test/node/configurationService.test.ts b/src/vs/workbench/services/configuration/test/node/configurationService.test.ts index a4b805cb93e..1116addc9a0 100644 --- a/src/vs/workbench/services/configuration/test/node/configurationService.test.ts +++ b/src/vs/workbench/services/configuration/test/node/configurationService.test.ts @@ -762,6 +762,55 @@ suite('WorkspaceConfigurationService - Multiroot', () => { }); }); + test('inspect', () => { + let actual = testObject.inspect('something.missing'); + assert.equal(actual.default, void 0); + assert.equal(actual.user, void 0); + assert.equal(actual.workspace, void 0); + assert.equal(actual.workspaceFolder, void 0); + assert.equal(actual.value, void 0); + + actual = testObject.inspect('configurationService.workspace.testResourceSetting'); + assert.equal(actual.default, 'isSet'); + assert.equal(actual.user, void 0); + assert.equal(actual.workspace, void 0); + assert.equal(actual.workspaceFolder, void 0); + assert.equal(actual.value, 'isSet'); + + fs.writeFileSync(environmentService.appSettingsPath, '{ "configurationService.workspace.testResourceSetting": "userValue" }'); + return testObject.reloadConfiguration() + .then(() => { + actual = testObject.inspect('configurationService.workspace.testResourceSetting'); + assert.equal(actual.default, 'isSet'); + assert.equal(actual.user, 'userValue'); + assert.equal(actual.workspace, void 0); + assert.equal(actual.workspaceFolder, void 0); + assert.equal(actual.value, 'userValue'); + + return jsonEditingServce.write(workspaceContextService.getWorkspace().configuration, { key: 'settings', value: { 'configurationService.workspace.testResourceSetting': 'workspaceValue' } }, true) + .then(() => testObject.reloadConfiguration()) + .then(() => { + actual = testObject.inspect('configurationService.workspace.testResourceSetting'); + assert.equal(actual.default, 'isSet'); + assert.equal(actual.user, 'userValue'); + assert.equal(actual.workspace, 'workspaceValue'); + assert.equal(actual.workspaceFolder, void 0); + assert.equal(actual.value, 'workspaceValue'); + + fs.writeFileSync(workspaceContextService.getWorkspace().folders[0].toResource('.vscode/settings.json').fsPath, '{ "configurationService.workspace.testResourceSetting": "workspaceFolderValue" }'); + + return testObject.reloadConfiguration() + .then(() => { + actual = testObject.inspect('configurationService.workspace.testResourceSetting', { resource: workspaceContextService.getWorkspace().folders[0].uri }); + assert.equal(actual.default, 'isSet'); + assert.equal(actual.user, 'userValue'); + assert.equal(actual.workspace, 'workspaceValue'); + assert.equal(actual.workspaceFolder, 'workspaceFolderValue'); + assert.equal(actual.value, 'workspaceFolderValue'); + }); + }); + }); + }); test('update user configuration', () => { return testObject.updateValue('configurationService.workspace.testSetting', 'userValue', ConfigurationTarget.USER) -- GitLab