OptionsMapTable logic to replace the deployment hardcoded values final (#19789)

* OptionsMapTable logic to replace the deployment hardcoded values final

* Test modifiaction

* OptionsMApTable updates with STS and review commetns

* comments added and option string moved to constants file

* Reverting the options button css related change and will put in other PR

* converted optionsMapTable to custom type and references.

* Options prop changes and model updates

* Reset btn event method name fixed

* removed local booleanOptionDict var and using the existing one

* updated code with removed local vars

* Update to booleanOptionsDictionary name

* merged two variable to one

* Refactoring code and updating variables

* separated lookup and data array and refactor

* missing visibility

* reset logic revised and no other edgecases found

* variable names updated to meaningful

* vbump here to test the checks, sending new vbump PR separately
This commit is contained in:
Sai Avishkar Sreerama
2022-07-08 09:40:06 -05:00
committed by GitHub
parent 84a15ea91d
commit 89816c9ff3
11 changed files with 116 additions and 628 deletions

View File

@@ -46,7 +46,7 @@ describe('Publish Database Options Dialog', () => {
// Verify the deployment options should exists
should.notEqual(optionsDialog.optionsModel.deploymentOptions, undefined);
Object.entries(optionsDialog.optionsModel.deploymentOptions).forEach(option => {
Object.entries(optionsDialog.optionsModel.deploymentOptions.booleanOptionsDictionary).forEach(option => {
// Validate the value and description as expected
should.equal(option[1].value, false);
should.equal(option[1].description, 'Sample Description text');

View File

@@ -13,19 +13,18 @@ describe('Publish Dialog Deploy Options Model', () => {
should.notEqual(model.getOptionsData(), undefined, 'Options shouldn\'t be undefined');
should.doesNotThrow(() => model.setDeploymentOptions());
should(model.getDeployOptionUtil('')).equal(undefined);
});
it('Should get description', function (): void {
const model = new DeployOptionsModel(testUtils.getDeploymentOptions());
model.optionsLabels.forEach(l => {
should(model.getDescription(l)).not.equal(undefined);
Object.entries(model.deploymentOptions.booleanOptionsDictionary).forEach(option => {
// option[1] contains the value, description and displayName
should(model.getOptionDescription(option[1].displayName)).not.equal(undefined);
});
});
it('Should be undefined for null description', function (): void {
it('Should return empty string for null option ', function (): void {
const model = new DeployOptionsModel(testUtils.getDeploymentOptions());
should(model.getDescription('')).equal(undefined);
should(model.getOptionDescription('')).equal('');
});
});

View File

@@ -27,99 +27,11 @@ export function getDeploymentOptions(): mssql.DeploymentOptions {
const sampleDesc = 'Sample Description text';
const sampleName = 'Sample Display Name';
const defaultOptions: mssql.DeploymentOptions = {
ignoreTableOptions: { value: false, description: sampleDesc, displayName: sampleName },
ignoreSemicolonBetweenStatements: { value: false, description: sampleDesc, displayName: sampleName },
ignoreRouteLifetime: { value: false, description: sampleDesc, displayName: sampleName },
ignoreRoleMembership: { value: false, description: sampleDesc, displayName: sampleName },
ignoreQuotedIdentifiers: { value: false, description: sampleDesc, displayName: sampleName },
ignorePermissions: { value: false, description: sampleDesc, displayName: sampleName },
ignorePartitionSchemes: { value: false, description: sampleDesc, displayName: sampleName },
ignoreObjectPlacementOnPartitionScheme: { value: false, description: sampleDesc, displayName: sampleName },
ignoreNotForReplication: { value: false, description: sampleDesc, displayName: sampleName },
ignoreLoginSids: { value: false, description: sampleDesc, displayName: sampleName },
ignoreLockHintsOnIndexes: { value: false, description: sampleDesc, displayName: sampleName },
ignoreKeywordCasing: { value: false, description: sampleDesc, displayName: sampleName },
ignoreIndexPadding: { value: false, description: sampleDesc, displayName: sampleName },
ignoreIndexOptions: { value: false, description: sampleDesc, displayName: sampleName },
ignoreIncrement: { value: false, description: sampleDesc, displayName: sampleName },
ignoreIdentitySeed: { value: false, description: sampleDesc, displayName: sampleName },
ignoreUserSettingsObjects: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFullTextCatalogFilePath: { value: false, description: sampleDesc, displayName: sampleName },
ignoreWhitespace: { value: false, description: sampleDesc, displayName: sampleName },
ignoreWithNocheckOnForeignKeys: { value: false, description: sampleDesc, displayName: sampleName },
verifyCollationCompatibility: { value: false, description: sampleDesc, displayName: sampleName },
unmodifiableObjectWarnings: { value: false, description: sampleDesc, displayName: sampleName },
treatVerificationErrorsAsWarnings: { value: false, description: sampleDesc, displayName: sampleName },
scriptRefreshModule: { value: false, description: sampleDesc, displayName: sampleName },
scriptNewConstraintValidation: { value: false, description: sampleDesc, displayName: sampleName },
scriptFileSize: { value: false, description: sampleDesc, displayName: sampleName },
scriptDeployStateChecks: { value: false, description: sampleDesc, displayName: sampleName },
scriptDatabaseOptions: { value: false, description: sampleDesc, displayName: sampleName },
scriptDatabaseCompatibility: { value: false, description: sampleDesc, displayName: sampleName },
scriptDatabaseCollation: { value: false, description: sampleDesc, displayName: sampleName },
runDeploymentPlanExecutors: { value: false, description: sampleDesc, displayName: sampleName },
registerDataTierApplication: { value: false, description: sampleDesc, displayName: sampleName },
populateFilesOnFileGroups: { value: false, description: sampleDesc, displayName: sampleName },
noAlterStatementsToChangeClrTypes: { value: false, description: sampleDesc, displayName: sampleName },
includeTransactionalScripts: { value: false, description: sampleDesc, displayName: sampleName },
includeCompositeObjects: { value: false, description: sampleDesc, displayName: sampleName },
allowUnsafeRowLevelSecurityDataMovement: { value: false, description: sampleDesc, displayName: sampleName },
ignoreWithNocheckOnCheckConstraints: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFillFactor: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFileSize: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFilegroupPlacement: { value: false, description: sampleDesc, displayName: sampleName },
doNotAlterReplicatedObjects: { value: false, description: sampleDesc, displayName: sampleName },
doNotAlterChangeDataCaptureObjects: { value: false, description: sampleDesc, displayName: sampleName },
disableAndReenableDdlTriggers: { value: false, description: sampleDesc, displayName: sampleName },
deployDatabaseInSingleUserMode: { value: false, description: sampleDesc, displayName: sampleName },
createNewDatabase: { value: false, description: sampleDesc, displayName: sampleName },
compareUsingTargetCollation: { value: false, description: sampleDesc, displayName: sampleName },
commentOutSetVarDeclarations: { value: false, description: sampleDesc, displayName: sampleName },
blockWhenDriftDetected: { value: false, description: sampleDesc, displayName: sampleName },
blockOnPossibleDataLoss: { value: false, description: sampleDesc, displayName: sampleName },
backupDatabaseBeforeChanges: { value: false, description: sampleDesc, displayName: sampleName },
allowIncompatiblePlatform: { value: false, description: sampleDesc, displayName: sampleName },
allowDropBlockingAssemblies: { value: false, description: sampleDesc, displayName: sampleName },
dropConstraintsNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropDmlTriggersNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropExtendedPropertiesNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropIndexesNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFileAndLogFilePath: { value: false, description: sampleDesc, displayName: sampleName },
ignoreExtendedProperties: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDmlTriggerState: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDmlTriggerOrder: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDefaultSchema: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDdlTriggerState: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDdlTriggerOrder: { value: false, description: sampleDesc, displayName: sampleName },
ignoreCryptographicProviderFilePath: { value: false, description: sampleDesc, displayName: sampleName },
verifyDeployment: { value: false, description: sampleDesc, displayName: sampleName },
ignoreComments: { value: false, description: sampleDesc, displayName: sampleName },
ignoreColumnCollation: { value: false, description: sampleDesc, displayName: sampleName },
ignoreAuthorizer: { value: false, description: sampleDesc, displayName: sampleName },
ignoreAnsiNulls: { value: false, description: sampleDesc, displayName: sampleName },
generateSmartDefaults: { value: false, description: sampleDesc, displayName: sampleName },
dropStatisticsNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropRoleMembersNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropPermissionsNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropObjectsNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
ignoreColumnOrder: { value: false, description: sampleDesc, displayName: sampleName },
doNotDropObjectTypes: { value: [], description: sampleDesc, displayName: sampleName },
excludeObjectTypes: { value: [], description: sampleDesc, displayName: sampleName },
ignoreTablePartitionOptions: { value: false, description: sampleDesc, displayName: sampleName },
doNotEvaluateSqlCmdVariables: { value: false, description: sampleDesc, displayName: sampleName },
disableParallelismForEnablingIndexes: { value: false, description: sampleDesc, displayName: sampleName },
disableIndexesForDataPhase: { value: false, description: sampleDesc, displayName: sampleName },
restoreSequenceCurrentValue: { value: false, description: sampleDesc, displayName: sampleName },
rebuildIndexesOfflineForDataPhase: { value: false, description: sampleDesc, displayName: sampleName },
isAlwaysEncryptedParameterizationEnabled: { value: false, description: sampleDesc, displayName: sampleName },
preserveIdentityLastValues: { value: false, description: sampleDesc, displayName: sampleName },
allowExternalLibraryPaths: { value: false, description: sampleDesc, displayName: sampleName },
allowExternalLanguagePaths: { value: false, description: sampleDesc, displayName: sampleName },
hashObjectNamesInLogs: { value: false, description: sampleDesc, displayName: sampleName },
doNotDropWorkloadClassifiers: { value: false, description: sampleDesc, displayName: sampleName },
ignoreWorkloadClassifiers: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDatabaseWorkloadGroups: { value: false, description: sampleDesc, displayName: sampleName },
doNotDropDatabaseWorkloadGroups: { value: false, description: sampleDesc, displayName: sampleName }
booleanOptionsDictionary: {
'SampleProperty1': { value: false, description: sampleDesc, displayName: sampleName },
'SampleProperty2': { value: false, description: sampleDesc, displayName: sampleName }
}
};
return defaultOptions;
}