mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
Remove deleting the old config (unsupported) and add notification (#11142)
* Add CodeQL Analysis workflow (#10195) * Add CodeQL Analysis workflow * Fix path * remove deleting the old config (unsupported) and add notification * fix tests Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
This commit is contained in:
@@ -7,6 +7,8 @@ import { IWorkbenchContribution } from 'vs/workbench/common/contributions';
|
|||||||
import { deepFreeze } from 'vs/base/common/objects';
|
import { deepFreeze } from 'vs/base/common/objects';
|
||||||
import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration';
|
import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration';
|
||||||
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||||
|
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||||
|
import { localize } from 'vs/nls';
|
||||||
|
|
||||||
const settingsToMove: { [key: string]: string } = deepFreeze({
|
const settingsToMove: { [key: string]: string } = deepFreeze({
|
||||||
'sql.saveAsCsv.includeHeaders': 'queryEditor.results.saveAsCsv.includeHeaders', // June 19, 2020
|
'sql.saveAsCsv.includeHeaders': 'queryEditor.results.saveAsCsv.includeHeaders', // June 19, 2020
|
||||||
@@ -36,7 +38,8 @@ export class ConfigurationUpgraderContribution implements IWorkbenchContribution
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@IStorageService private readonly storageService: IStorageService,
|
@IStorageService private readonly storageService: IStorageService,
|
||||||
@IConfigurationService private readonly configurationService: IConfigurationService
|
@IConfigurationService private readonly configurationService: IConfigurationService,
|
||||||
|
@INotificationService private readonly notificationService: INotificationService
|
||||||
) {
|
) {
|
||||||
this.globalStorage = JSON.parse(this.storageService.get(ConfigurationUpgraderContribution.STORAGE_KEY, StorageScope.GLOBAL, '{}'));
|
this.globalStorage = JSON.parse(this.storageService.get(ConfigurationUpgraderContribution.STORAGE_KEY, StorageScope.GLOBAL, '{}'));
|
||||||
this.workspaceStorage = JSON.parse(this.storageService.get(ConfigurationUpgraderContribution.STORAGE_KEY, StorageScope.WORKSPACE, '{}'));
|
this.workspaceStorage = JSON.parse(this.storageService.get(ConfigurationUpgraderContribution.STORAGE_KEY, StorageScope.WORKSPACE, '{}'));
|
||||||
@@ -52,14 +55,14 @@ export class ConfigurationUpgraderContribution implements IWorkbenchContribution
|
|||||||
const toKey = settingsToMove[key];
|
const toKey = settingsToMove[key];
|
||||||
const value = this.configurationService.inspect(key);
|
const value = this.configurationService.inspect(key);
|
||||||
if (this.globalStorage[key] !== true && value.userValue) {
|
if (this.globalStorage[key] !== true && value.userValue) {
|
||||||
await this.configurationService.updateValue(key, undefined, ConfigurationTarget.USER); // writing undefined will result in the key being deleted
|
|
||||||
await this.configurationService.updateValue(toKey, value.userValue, ConfigurationTarget.USER); // update to new settings key
|
await this.configurationService.updateValue(toKey, value.userValue, ConfigurationTarget.USER); // update to new settings key
|
||||||
this.globalStorage[key] = true; // don't proccess again
|
this.globalStorage[key] = true; // don't proccess again
|
||||||
|
this.notificationService.info(localize('workbench.configuration.upgradeUser', "{0} was replaced with {1} in your user settings.", key, toKey));
|
||||||
}
|
}
|
||||||
if (this.workspaceStorage[key] !== true && value.workspaceValue) {
|
if (this.workspaceStorage[key] !== true && value.workspaceValue) {
|
||||||
await this.configurationService.updateValue(key, undefined, ConfigurationTarget.WORKSPACE); // writing undefined will result in the key being deleted
|
|
||||||
await this.configurationService.updateValue(toKey, value.workspaceValue, ConfigurationTarget.WORKSPACE); // update to new settings key
|
await this.configurationService.updateValue(toKey, value.workspaceValue, ConfigurationTarget.WORKSPACE); // update to new settings key
|
||||||
this.workspaceStorage[key] = true; // don't proccess again
|
this.workspaceStorage[key] = true; // don't proccess again
|
||||||
|
this.notificationService.info(localize('workbench.configuration.upgradeWorkspace', "{0} was replaced with {1} in your workspace settings.", key, toKey));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,39 +7,35 @@ import * as assert from 'assert';
|
|||||||
import { ConfigurationUpgraderContribution } from 'sql/workbench/contrib/configuration/common/configurationUpgrader';
|
import { ConfigurationUpgraderContribution } from 'sql/workbench/contrib/configuration/common/configurationUpgrader';
|
||||||
import { TestStorageService } from 'vs/workbench/test/common/workbenchTestServices';
|
import { TestStorageService } from 'vs/workbench/test/common/workbenchTestServices';
|
||||||
import { TestConfigurationService } from 'sql/platform/connection/test/common/testConfigurationService';
|
import { TestConfigurationService } from 'sql/platform/connection/test/common/testConfigurationService';
|
||||||
|
import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService';
|
||||||
|
|
||||||
suite('Configuration Upgrader', () => {
|
suite('Configuration Upgrader', () => {
|
||||||
test('does upgrade settings in user settings', async () => {
|
test('does upgrade settings in user settings', async () => {
|
||||||
const configurationService = new TestConfigurationService({ user: { 'sql': { 'saveAsCsv': { 'includeHeaders': true } } } });
|
const configurationService = new TestConfigurationService({ user: { 'sql': { 'saveAsCsv': { 'includeHeaders': true } } } });
|
||||||
const configurationUpgrader = new ConfigurationUpgraderContribution(new TestStorageService(), configurationService);
|
const configurationUpgrader = new ConfigurationUpgraderContribution(new TestStorageService(), configurationService, new TestNotificationService());
|
||||||
await configurationUpgrader.processingPromise;
|
await configurationUpgrader.processingPromise;
|
||||||
assert(configurationService.inspect('sql.saveAsCsv.includeHeaders').userValue === undefined);
|
|
||||||
assert(configurationService.inspect('queryEditor.results.saveAsCsv.includeHeaders').userValue === true);
|
assert(configurationService.inspect('queryEditor.results.saveAsCsv.includeHeaders').userValue === true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('does not change new setting', async () => {
|
test('does not change new setting', async () => {
|
||||||
const configurationService = new TestConfigurationService({ user: { 'queryEditor': { 'results': { 'saveAsCsv': { 'includeHeaders': true } } } } });
|
const configurationService = new TestConfigurationService({ user: { 'queryEditor': { 'results': { 'saveAsCsv': { 'includeHeaders': true } } } } });
|
||||||
const configurationUpgrader = new ConfigurationUpgraderContribution(new TestStorageService(), configurationService);
|
const configurationUpgrader = new ConfigurationUpgraderContribution(new TestStorageService(), configurationService, new TestNotificationService());
|
||||||
await configurationUpgrader.processingPromise;
|
await configurationUpgrader.processingPromise;
|
||||||
assert(configurationService.inspect('sql.saveAsCsv.includeHeaders').userValue === undefined);
|
|
||||||
assert(configurationService.inspect('queryEditor.results.saveAsCsv.includeHeaders').userValue === true);
|
assert(configurationService.inspect('queryEditor.results.saveAsCsv.includeHeaders').userValue === true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('correctly changes multiple settings', async () => {
|
test('correctly changes multiple settings', async () => {
|
||||||
const configurationService = new TestConfigurationService({ user: { 'sql': { 'saveAsCsv': { 'includeHeaders': true }, 'promptToSaveGeneratedFiles': true } } });
|
const configurationService = new TestConfigurationService({ user: { 'sql': { 'saveAsCsv': { 'includeHeaders': true }, 'promptToSaveGeneratedFiles': true } } });
|
||||||
const configurationUpgrader = new ConfigurationUpgraderContribution(new TestStorageService(), configurationService);
|
const configurationUpgrader = new ConfigurationUpgraderContribution(new TestStorageService(), configurationService, new TestNotificationService());
|
||||||
await configurationUpgrader.processingPromise;
|
await configurationUpgrader.processingPromise;
|
||||||
assert(configurationService.inspect('sql.saveAsCsv.includeHeaders').userValue === undefined);
|
|
||||||
assert(configurationService.inspect('queryEditor.results.saveAsCsv.includeHeaders').userValue === true);
|
assert(configurationService.inspect('queryEditor.results.saveAsCsv.includeHeaders').userValue === true);
|
||||||
assert(configurationService.inspect('sql.promptToSaveGeneratedFiles').userValue === undefined);
|
|
||||||
assert(configurationService.inspect('queryEditor.promptToSaveGeneratedFiles').userValue === true);
|
assert(configurationService.inspect('queryEditor.promptToSaveGeneratedFiles').userValue === true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('does change workspace settings', async () => {
|
test('does change workspace settings', async () => {
|
||||||
const configurationService = new TestConfigurationService({ workspace: { 'sql': { 'saveAsCsv': { 'includeHeaders': true } } } });
|
const configurationService = new TestConfigurationService({ workspace: { 'sql': { 'saveAsCsv': { 'includeHeaders': true } } } });
|
||||||
const configurationUpgrader = new ConfigurationUpgraderContribution(new TestStorageService(), configurationService);
|
const configurationUpgrader = new ConfigurationUpgraderContribution(new TestStorageService(), configurationService, new TestNotificationService());
|
||||||
await configurationUpgrader.processingPromise;
|
await configurationUpgrader.processingPromise;
|
||||||
assert(configurationService.inspect('sql.saveAsCsv.includeHeaders').workspaceValue === undefined);
|
|
||||||
assert(configurationService.inspect('queryEditor.results.saveAsCsv.includeHeaders').workspaceValue === true);
|
assert(configurationService.inspect('queryEditor.results.saveAsCsv.includeHeaders').workspaceValue === true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user