Clean up buildConnectionInfo (#22407)

* Clean up buildConnectionInfo

* Add test and cleanup
This commit is contained in:
Charles Gagnon
2023-03-22 12:54:29 -07:00
committed by GitHub
parent 9f435e271a
commit ed37ad315f
4 changed files with 14 additions and 14 deletions

View File

@@ -1674,18 +1674,13 @@ export class ConnectionManagementService extends Disposable implements IConnecti
});
}
/**
* Serialize connection with options provider
* TODO this could be a map reduce operation
*/
public buildConnectionInfo(connectionString: string, provider: string): Thenable<azdata.ConnectionInfo> {
let connectionProvider = this._providers.get(provider);
if (connectionProvider) {
return connectionProvider.onReady.then(e => {
return e.buildConnectionInfo(connectionString);
});
public async buildConnectionInfo(connectionString: string, providerId: string): Promise<azdata.ConnectionInfo> {
const connectionProviderInfo = this._providers.get(providerId);
if (!connectionProviderInfo) {
throw new Error(nls.localize('connection.unknownProvider', "Unknown provider '{0}'", providerId));
}
return Promise.resolve(undefined);
const provider = await connectionProviderInfo.onReady;
return provider.buildConnectionInfo(connectionString)
}
public getProviderProperties(providerName: string): ConnectionProviderProperties {

View File

@@ -938,6 +938,11 @@ suite('SQL ConnectionManagementService tests', () => {
assert.strictEqual(result.options, options);
});
test('buildConnectionInfo with unknown provider should throw', async () => {
let testConnectionString = 'test_connection_string';
await assert.rejects(() => connectionManagementService.buildConnectionInfo(testConnectionString, 'INVALID'));
});
test('removeConnectionProfileCredentials should return connection profile without password', () => {
let profile = Object.assign({}, connectionProfile);
connectionStore.setup(x => x.getProfileWithoutPassword(TypeMoq.It.isAny())).returns(() => {