提交 e505bbd3 编写于 作者: S Sandeep Somavarapu

Fix #38215

上级 9bbe9f6e
...@@ -297,9 +297,9 @@ suite('WorkspaceContextService - Workspace', () => { ...@@ -297,9 +297,9 @@ suite('WorkspaceContextService - Workspace', () => {
suite('WorkspaceConfigurationService - Folder', () => { suite('WorkspaceConfigurationService - Folder', () => {
let workspaceName = `testWorkspace${uuid.generateUuid()}`, parentResource: string, workspaceDir: string, testObject: IConfigurationService, globalSettingsFile: string; let workspaceName = `testWorkspace${uuid.generateUuid()}`, parentResource: string, workspaceDir: string, testObject: IConfigurationService, globalSettingsFile: string;
const configurationRegistry = <IConfigurationRegistry>Registry.as(ConfigurationExtensions.Configuration);
suiteSetup(() => { suiteSetup(() => {
const configurationRegistry = <IConfigurationRegistry>Registry.as(ConfigurationExtensions.Configuration);
configurationRegistry.registerConfiguration({ configurationRegistry.registerConfiguration({
'id': '_test', 'id': '_test',
'type': 'object', 'type': 'object',
...@@ -308,6 +308,11 @@ suite('WorkspaceConfigurationService - Folder', () => { ...@@ -308,6 +308,11 @@ suite('WorkspaceConfigurationService - Folder', () => {
'type': 'string', 'type': 'string',
'default': 'isSet' 'default': 'isSet'
}, },
'configurationService.folder.executableSetting': {
'type': 'string',
'default': 'isSet',
isExecutable: true
}
} }
}); });
}); });
...@@ -347,7 +352,7 @@ suite('WorkspaceConfigurationService - Folder', () => { ...@@ -347,7 +352,7 @@ suite('WorkspaceConfigurationService - Folder', () => {
}); });
test('defaults', () => { test('defaults', () => {
assert.deepEqual(testObject.getValue('configurationService'), { 'folder': { 'testSetting': 'isSet' } }); assert.deepEqual(testObject.getValue('configurationService'), { 'folder': { 'testSetting': 'isSet', 'executableSetting': 'isSet' } });
}); });
test('globals override defaults', () => { test('globals override defaults', () => {
...@@ -375,6 +380,31 @@ suite('WorkspaceConfigurationService - Folder', () => { ...@@ -375,6 +380,31 @@ suite('WorkspaceConfigurationService - Folder', () => {
.then(() => assert.equal(testObject.getValue('configurationService.folder.testSetting'), 'workspaceValue')); .then(() => assert.equal(testObject.getValue('configurationService.folder.testSetting'), 'workspaceValue'));
}); });
test('workspace settings override user settings after defaults are registered ', () => {
fs.writeFileSync(globalSettingsFile, '{ "configurationService.folder.newSetting": "userValue" }');
fs.writeFileSync(path.join(workspaceDir, '.vscode', 'settings.json'), '{ "configurationService.folder.newSetting": "workspaceValue" }');
configurationRegistry.registerConfiguration({
'id': '_test',
'type': 'object',
'properties': {
'configurationService.folder.newSetting': {
'type': 'string',
'default': 'isSet'
}
}
});
return testObject.reloadConfiguration()
.then(() => assert.equal(testObject.getValue('configurationService.folder.newSetting'), 'workspaceValue'));
});
test('executable settings are not read from workspace', () => {
fs.writeFileSync(globalSettingsFile, '{ "configurationService.folder.executableSetting": "userValue" }');
fs.writeFileSync(path.join(workspaceDir, '.vscode', 'settings.json'), '{ "configurationService.folder.executableSetting": "workspaceValue" }');
return testObject.reloadConfiguration()
.then(() => assert.equal(testObject.getValue('configurationService.folder.executableSetting'), 'userValue'));
});
test('workspace change triggers event', () => { test('workspace change triggers event', () => {
const settingsFile = path.join(workspaceDir, '.vscode', 'settings.json'); const settingsFile = path.join(workspaceDir, '.vscode', 'settings.json');
fs.writeFileSync(settingsFile, '{ "configurationService.folder.testSetting": "workspaceValue" }'); fs.writeFileSync(settingsFile, '{ "configurationService.folder.testSetting": "workspaceValue" }');
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册