Merge pull request #128909 from 71/main

platform/configuration: fix empty keys being ignored by configuration parser
This commit is contained in:
Sandeep Somavarapu 2021-07-21 11:39:18 +02:00 committed by GitHub
commit 79156e629f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View file

@ -270,7 +270,7 @@ export class ConfigurationModelParser {
function onValue(value: any) {
if (Array.isArray(currentParent)) {
(<any[]>currentParent).push(value);
} else if (currentProperty) {
} else if (currentProperty !== null) {
currentParent[currentProperty] = value;
}
}

View file

@ -334,6 +334,16 @@ suite('CustomConfigurationModel', () => {
assert.deepStrictEqual(testObject.configurationModel.keys, []);
});
test('Test empty property is not ignored', () => {
const testObject = new ConfigurationModelParser('test');
testObject.parse(JSON.stringify({ '': 1 }));
// deepStrictEqual seems to ignore empty properties, fall back
// to comparing the output of JSON.stringify
assert.strictEqual(JSON.stringify(testObject.configurationModel.contents), JSON.stringify({ '': 1 }));
assert.deepStrictEqual(testObject.configurationModel.keys, ['']);
});
test('Test registering the same property again', () => {
Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({
'id': 'a',