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++;
let usr = c.options.user;
let srv = c.options.server;
if (!usr) {
usr = loc.defaultText;
}
let srv = c.options.server;
let finalName = `${srv} (${usr})`;
if (c.options.connectionName) {
finalName = c.options.connectionName;
}
// use previously selected server or current connection if there is one
if (endpointInfo && !isNullOrUndefined(endpointInfo.serverName) && !isNullOrUndefined(endpointInfo.serverDisplayName)
&& c.options.server.toLowerCase() === endpointInfo.serverName.toLowerCase()

View File

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

View File

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

View File

@@ -33,21 +33,29 @@ describe('utils: Tests to verify getEndpointName @DacFx@', function (): void {
should(getEndpointName(mockDatabaseEndpoint)).equal(' ');
});
it('Should get endpoint information from ConnectionInfo', () => {
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
it('Should get only database information from ConnectionInfo if connection', () => {
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 };
should(getEndpointName(testDatabaseEndpoint)).equal('My Server.My Database');
});
it('Should get correct endpoint information from SchemaCompareEndpointInfo', () => {
let dbName = 'My Database';
let serverName = 'My Server';
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
const dbName = 'My Database';
const serverDisplayName = 'My Connection';
const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
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> {
let ownerUri = undefined;
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = undefined;
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> {
let getConnectionsResults: azdata.connection.ConnectionProfile[] = [];
let connection = { ...mockConnectionResult };
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
const getConnectionsResults: azdata.connection.ConnectionProfile[] = [];
const connection = { ...mockConnectionResult };
const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
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> {
let getConnectionsResults: azdata.connection.ConnectionProfile[] = [{ ...mockConnectionProfile }];
let connection = { ...mockConnectionResult };
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
const getConnectionsResults: azdata.connection.ConnectionProfile[] = [{ ...mockConnectionProfile }];
const connection = { ...mockConnectionResult };
const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
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> {
let getConnectionsResults: azdata.connection.ConnectionProfile[] = [];
let connection = { ...mockConnectionResult };
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
const getConnectionsResults: azdata.connection.ConnectionProfile[] = [];
const connection = { ...mockConnectionResult };
const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
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> {
let ownerUri = undefined;
let connection = { ...mockConnectionResult };
let testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
let expectedOwnerUri: string = 'providerName:MSSQL|authenticationType:SqlLogin|database:My Database|server:My Server|user:My User|databaseDisplayName:My Database';
const connection = { ...mockConnectionResult };
const testDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = { ...mockDatabaseEndpoint };
const expectedOwnerUri: string = 'providerName:MSSQL|authenticationType:SqlLogin|database:My Database|server:My Server|user:My User|databaseDisplayName:My Database';
testDatabaseEndpoint.connectionDetails = { ...mockConnectionInfo };
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.serverName && endpoint.connectionDetails) {
endpoint.serverName = endpoint.connectionDetails['serverName'];
if (!endpoint.serverDisplayName && endpoint.connectionDetails) {
endpoint.serverDisplayName = endpoint.connectionDetails['serverName'];
}
if (!endpoint.databaseName && endpoint.connectionDetails) {
endpoint.databaseName = endpoint.connectionDetails['databaseName'];
}
if (endpoint.serverName && endpoint.databaseName) {
return `${endpoint.serverName}.${endpoint.databaseName}`;
if (endpoint.serverDisplayName && endpoint.databaseName) {
return `${endpoint.serverDisplayName}.${endpoint.databaseName}`;
} else {
return ' ';
}