ISSUE10685 - Edits schemaCompareDialog to show connectionName if provided (#15152)

* ISSUE10685 - Edits schemaCompareDialog to show connectionName if provided

* ISSUE10685 - Edits to not show user if connectionName

* ISSUE10685 - Shows connection name is schema compare launched from db

* ISSUE10685 - Shows connection name in schema compare window

* ISSUE10685 - Edits utils tests

* ISSUE10685 - Edits schemaCompare test

* ISSUE10685 - Adds/Edits specs

* ISSUE10685 - Changes let to const
This commit is contained in:
Vaggelis Sotiropoulos
2021-04-26 11:11:43 -07:00
committed by GitHub
parent 463ea0b46b
commit 3e4f687862
5 changed files with 44 additions and 28 deletions

View File

@@ -549,13 +549,19 @@ export class SchemaCompareDialog {
count++; count++;
let usr = c.options.user; let usr = c.options.user;
let srv = c.options.server;
if (!usr) { if (!usr) {
usr = loc.defaultText; usr = loc.defaultText;
} }
let srv = c.options.server;
let finalName = `${srv} (${usr})`; let finalName = `${srv} (${usr})`;
if (c.options.connectionName) {
finalName = c.options.connectionName;
}
// use previously selected server or current connection if there is one // use previously selected server or current connection if there is one
if (endpointInfo && !isNullOrUndefined(endpointInfo.serverName) && !isNullOrUndefined(endpointInfo.serverDisplayName) if (endpointInfo && !isNullOrUndefined(endpointInfo.serverName) && !isNullOrUndefined(endpointInfo.serverDisplayName)
&& c.options.server.toLowerCase() === endpointInfo.serverName.toLowerCase() && c.options.server.toLowerCase() === endpointInfo.serverName.toLowerCase()

View File

@@ -98,7 +98,7 @@ export class SchemaCompareMainWindow {
this.sourceEndpointInfo = { this.sourceEndpointInfo = {
endpointType: mssql.SchemaCompareEndpointType.Database, endpointType: mssql.SchemaCompareEndpointType.Database,
serverDisplayName: `${profile.serverName} (${usr})`, serverDisplayName: profile.connectionName ? profile.connectionName : profile.serverName,
serverName: profile.serverName, serverName: profile.serverName,
databaseName: profile.databaseName, databaseName: profile.databaseName,
ownerUri: ownerUri, ownerUri: ownerUri,

View File

@@ -111,11 +111,13 @@ export function setDacpacEndpointInfo(path: string): mssql.SchemaCompareEndpoint
export function setDatabaseEndpointInfo(): mssql.SchemaCompareEndpointInfo { export function setDatabaseEndpointInfo(): mssql.SchemaCompareEndpointInfo {
let endpointInfo: mssql.SchemaCompareEndpointInfo; let endpointInfo: mssql.SchemaCompareEndpointInfo;
let dbName = 'My Database'; const serverName = 'My Server';
let serverName = 'My Server'; const dbName = 'My Database';
const serverDisplayName = 'My Connection';
endpointInfo = { ...mockDatabaseEndpoint }; endpointInfo = { ...mockDatabaseEndpoint };
endpointInfo.databaseName = dbName; endpointInfo.databaseName = dbName;
endpointInfo.serverDisplayName = serverDisplayName;
endpointInfo.serverName = serverName; endpointInfo.serverName = serverName;
return endpointInfo; return endpointInfo;

View File

@@ -33,21 +33,29 @@ describe('utils: Tests to verify getEndpointName @DacFx@', function (): void {
should(getEndpointName(mockDatabaseEndpoint)).equal(' '); should(getEndpointName(mockDatabaseEndpoint)).equal(' ');
}); });
it('Should get endpoint information from ConnectionInfo', () => { it('Should get only database information from ConnectionInfo if connection', () => {
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint }; const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.serverDisplayName = 'My Connection';
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
should(getEndpointName(testDatabaseEndpoint)).equal('My Connection.My Database');
});
it('Should get information from ConnectionInfo if no connection', () => {
const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo }; testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
should(getEndpointName(testDatabaseEndpoint)).equal('My Server.My Database'); should(getEndpointName(testDatabaseEndpoint)).equal('My Server.My Database');
}); });
it('Should get correct endpoint information from SchemaCompareEndpointInfo', () => { it('Should get correct endpoint information from SchemaCompareEndpointInfo', () => {
let dbName = 'My Database'; const dbName = 'My Database';
let serverName = 'My Server'; const serverDisplayName = 'My Connection';
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint }; const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.databaseName = dbName; testDatabaseEndpoint.databaseName = dbName;
testDatabaseEndpoint.serverName = serverName; testDatabaseEndpoint.serverDisplayName = serverDisplayName;
should(getEndpointName(testDatabaseEndpoint)).equal('My Server.My Database'); should(getEndpointName(testDatabaseEndpoint)).equal('My Connection.My Database');
}); });
}); });
@@ -65,7 +73,7 @@ describe('utils: Basic tests to verify verifyConnectionAndGetOwnerUri', function
it('Should return undefined for endpoint as database and no ConnectionInfo', async function (): Promise<void> { it('Should return undefined for endpoint as database and no ConnectionInfo', async function (): Promise<void> {
let ownerUri = undefined; let ownerUri = undefined;
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint }; const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = undefined; testDatabaseEndpoint.connectionDetails = undefined;
ownerUri = await verifyConnectionAndGetOwnerUri(testDatabaseEndpoint, 'test'); ownerUri = await verifyConnectionAndGetOwnerUri(testDatabaseEndpoint, 'test');
@@ -84,9 +92,9 @@ describe('utils: In-depth tests to verify verifyConnectionAndGetOwnerUri', funct
}); });
it('Should throw an error asking to make a connection', async function (): Promise<void> { it('Should throw an error asking to make a connection', async function (): Promise<void> {
let getConnectionsResults: azdata.connection.ConnectionProfile[] = []; const getConnectionsResults: azdata.connection.ConnectionProfile[] = [];
let connection = { ...mockConnectionResult }; const connection = { ...mockConnectionResult };
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint }; const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo }; testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
const getConnectionString = loc.getConnectionString('test'); const getConnectionString = loc.getConnectionString('test');
@@ -101,9 +109,9 @@ describe('utils: In-depth tests to verify verifyConnectionAndGetOwnerUri', funct
}); });
it('Should throw an error for login failure', async function (): Promise<void> { it('Should throw an error for login failure', async function (): Promise<void> {
let getConnectionsResults: azdata.connection.ConnectionProfile[] = [{ ...mockConnectionProfile }]; const getConnectionsResults: azdata.connection.ConnectionProfile[] = [{ ...mockConnectionProfile }];
let connection = { ...mockConnectionResult }; const connection = { ...mockConnectionResult };
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint }; const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo }; testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
sinon.stub(azdata.connection, 'connect').returns(<any>Promise.resolve(connection)); sinon.stub(azdata.connection, 'connect').returns(<any>Promise.resolve(connection));
@@ -118,9 +126,9 @@ describe('utils: In-depth tests to verify verifyConnectionAndGetOwnerUri', funct
}); });
it('Should throw an error for login failure with openConnectionDialog but no ownerUri', async function (): Promise<void> { it('Should throw an error for login failure with openConnectionDialog but no ownerUri', async function (): Promise<void> {
let getConnectionsResults: azdata.connection.ConnectionProfile[] = []; const getConnectionsResults: azdata.connection.ConnectionProfile[] = [];
let connection = { ...mockConnectionResult }; const connection = { ...mockConnectionResult };
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint }; const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo }; testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
sinon.stub(azdata.connection, 'connect').returns(<any>Promise.resolve(connection)); sinon.stub(azdata.connection, 'connect').returns(<any>Promise.resolve(connection));
@@ -139,9 +147,9 @@ describe('utils: In-depth tests to verify verifyConnectionAndGetOwnerUri', funct
it('Should not throw an error and set ownerUri appropriately', async function (): Promise<void> { it('Should not throw an error and set ownerUri appropriately', async function (): Promise<void> {
let ownerUri = undefined; let ownerUri = undefined;
let connection = { ...mockConnectionResult }; const connection = { ...mockConnectionResult };
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint }; const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
let expectedOwnerUri: string = 'providerName:MSSQL|authenticationType:SqlLogin|database:My Database|server:My Server|user:My User|databaseDisplayName:My Database'; const expectedOwnerUri: string = 'providerName:MSSQL|authenticationType:SqlLogin|database:My Database|server:My Server|user:My User|databaseDisplayName:My Database';
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo }; testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
sinon.stub(azdata.connection, 'connect').returns(<any>Promise.resolve(connection)); sinon.stub(azdata.connection, 'connect').returns(<any>Promise.resolve(connection));

View File

@@ -49,14 +49,14 @@ export function getEndpointName(endpoint: mssql.SchemaCompareEndpointInfo): stri
} }
if (endpoint.endpointType === mssql.SchemaCompareEndpointType.Database) { if (endpoint.endpointType === mssql.SchemaCompareEndpointType.Database) {
if (!endpoint.serverName && endpoint.connectionDetails) { if (!endpoint.serverDisplayName && endpoint.connectionDetails) {
endpoint.serverName = endpoint.connectionDetails['serverName']; endpoint.serverDisplayName = endpoint.connectionDetails['serverName'];
} }
if (!endpoint.databaseName && endpoint.connectionDetails) { if (!endpoint.databaseName && endpoint.connectionDetails) {
endpoint.databaseName = endpoint.connectionDetails['databaseName']; endpoint.databaseName = endpoint.connectionDetails['databaseName'];
} }
if (endpoint.serverName && endpoint.databaseName) { if (endpoint.serverDisplayName && endpoint.databaseName) {
return `${endpoint.serverName}.${endpoint.databaseName}`; return `${endpoint.serverDisplayName}.${endpoint.databaseName}`;
} else { } else {
return ' '; return ' ';
} }