Skip to content

Commit 172a2df

Browse files
committed
microsoft#68882 Add tests updating configuration in memory
1 parent 8e740b5 commit 172a2df

3 files changed

Lines changed: 52 additions & 2 deletions

File tree

src/vs/platform/configuration/test/common/configurationModels.test.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55
import * as assert from 'assert';
6-
import { ConfigurationModel, DefaultConfigurationModel, ConfigurationChangeEvent, ConfigurationModelParser } from 'vs/platform/configuration/common/configurationModels';
6+
import { ConfigurationModel, DefaultConfigurationModel, ConfigurationChangeEvent, ConfigurationModelParser, Configuration } from 'vs/platform/configuration/common/configurationModels';
77
import { Extensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry';
88
import { Registry } from 'vs/platform/registry/common/platform';
99
import { URI } from 'vs/base/common/uri';
@@ -466,4 +466,30 @@ suite('ConfigurationChangeEvent', () => {
466466
assert.ok(actual.affectsConfiguration('[markdown]', URI.file('file2')));
467467
});
468468

469+
});
470+
471+
suite('Configuration', () => {
472+
473+
test('Test update value', () => {
474+
const parser = new ConfigurationModelParser('test');
475+
parser.parse(JSON.stringify({ 'a': 1 }));
476+
const testObject: Configuration = new Configuration(parser.configurationModel, new ConfigurationModel());
477+
478+
testObject.updateValue('a', 2);
479+
480+
assert.equal(testObject.getValue('a', {}, undefined), 2);
481+
});
482+
483+
test('Test update value after inspect', () => {
484+
const parser = new ConfigurationModelParser('test');
485+
parser.parse(JSON.stringify({ 'a': 1 }));
486+
const testObject: Configuration = new Configuration(parser.configurationModel, new ConfigurationModel());
487+
488+
testObject.inspect('a', {}, undefined);
489+
testObject.updateValue('a', 2);
490+
491+
assert.equal(testObject.getValue('a', {}, undefined), 2);
492+
});
493+
494+
469495
});

src/vs/workbench/services/configuration/node/configurationService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat
589589
})]);
590590
}
591591

592-
private writeConfigurationValue(key: string, value: any, target: ConfigurationTarget, overrides: IConfigurationOverrides, donotNotifyError: boolean): Promise<void> {
592+
private writeConfigurationValue(key: string, value: any, target: ConfigurationTarget, overrides: IConfigurationOverrides | undefined, donotNotifyError: boolean): Promise<void> {
593593
if (target === ConfigurationTarget.DEFAULT) {
594594
return Promise.reject(new Error('Invalid configuration target'));
595595
}

src/vs/workbench/services/configuration/test/electron-browser/configurationService.test.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,18 @@ suite('WorkspaceConfigurationService - Folder', () => {
912912
.then(() => assert.ok(target.called));
913913
});
914914

915+
test('update memory configuration', () => {
916+
return testObject.updateValue('configurationService.folder.testSetting', 'memoryValue', ConfigurationTarget.MEMORY)
917+
.then(() => assert.equal(testObject.getValue('configurationService.folder.testSetting'), 'memoryValue'));
918+
});
919+
920+
test('update memory configuration should trigger change event before promise is resolve', () => {
921+
const target = sinon.spy();
922+
testObject.onDidChangeConfiguration(target);
923+
return testObject.updateValue('configurationService.folder.testSetting', 'memoryValue', ConfigurationTarget.MEMORY)
924+
.then(() => assert.ok(target.called));
925+
});
926+
915927
test('update task configuration should trigger change event before promise is resolve', () => {
916928
const target = sinon.spy();
917929
testObject.onDidChangeConfiguration(target);
@@ -1216,6 +1228,18 @@ suite('WorkspaceConfigurationService-Multiroot', () => {
12161228
});
12171229
});
12181230

1231+
test('update memory configuration', () => {
1232+
return testObject.updateValue('configurationService.workspace.testSetting', 'memoryValue', ConfigurationTarget.MEMORY)
1233+
.then(() => assert.equal(testObject.getValue('configurationService.workspace.testSetting'), 'memoryValue'));
1234+
});
1235+
1236+
test('update memory configuration should trigger change event before promise is resolve', () => {
1237+
const target = sinon.spy();
1238+
testObject.onDidChangeConfiguration(target);
1239+
return testObject.updateValue('configurationService.workspace.testSetting', 'memoryValue', ConfigurationTarget.MEMORY)
1240+
.then(() => assert.ok(target.called));
1241+
});
1242+
12191243
test('update tasks configuration in a folder', () => {
12201244
const workspace = workspaceContextService.getWorkspace();
12211245
return testObject.updateValue('tasks', { 'version': '1.0.0', tasks: [{ 'taskName': 'myTask' }] }, { resource: workspace.folders[0].uri }, ConfigurationTarget.WORKSPACE_FOLDER)

0 commit comments

Comments
 (0)