Don't do any extra parsing, put the responsibility on the caller (#10489)

* Don't do any extra parsing, put the responsibility on the caller

* make integrated default

* Fix the tests

* Fix test
This commit is contained in:
Amir Omidi
2020-05-19 12:18:18 -07:00
committed by GitHub
parent d6b5489f93
commit b02b41815d
2 changed files with 14 additions and 14 deletions

View File

@@ -34,11 +34,10 @@ import { IEnvironmentService } from 'vs/platform/environment/common/environment'
const connectAuthority = 'connect';
interface SqlArgs {
export interface SqlArgs {
_?: string[];
aad?: boolean;
authenticationType?: string
database?: string;
integrated?: boolean;
server?: string;
user?: string;
command?: string;
@@ -220,11 +219,11 @@ export class CommandLineWorkbenchContribution implements IWorkbenchContribution,
let profile = new ConnectionProfile(this._capabilitiesService, null);
// We want connection store to use any matching password it finds
profile.savePassword = true;
profile.providerName = args.provider ? args.provider : Constants.mssqlProviderName;
profile.providerName = args.provider ?? Constants.mssqlProviderName;
profile.serverName = args.server;
profile.databaseName = args.database ? args.database : '';
profile.userName = args.user ? args.user : '';
profile.authenticationType = args.integrated ? Constants.integrated : args.aad ? Constants.azureMFA : (profile.userName.length > 0) ? Constants.sqlLogin : Constants.integrated;
profile.databaseName = args.database ?? '';
profile.userName = args.user ?? '';
profile.authenticationType = args.authenticationType ?? Constants.integrated;
profile.connectionName = '';
profile.setOptionValue('applicationName', Constants.applicationName);
profile.setOptionValue('databaseDisplayName', profile.databaseName);

View File

@@ -8,7 +8,7 @@ import * as TypeMoq from 'typemoq';
import * as azdata from 'azdata';
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
import { ConnectionProfileGroup } from 'sql/platform/connection/common/connectionProfileGroup';
import { CommandLineWorkbenchContribution } from 'sql/workbench/contrib/commandLine/electron-browser/commandLine';
import { CommandLineWorkbenchContribution, SqlArgs } from 'sql/workbench/contrib/commandLine/electron-browser/commandLine';
import * as Constants from 'sql/platform/connection/common/constants';
import { ParsedArgs } from 'vs/platform/environment/node/argv';
import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilitiesService';
@@ -35,11 +35,9 @@ import { FileEditorInput } from 'vs/workbench/contrib/files/common/editors/fileE
import { FileQueryEditorInput } from 'sql/workbench/contrib/query/common/fileQueryEditorInput';
import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService';
class TestParsedArgs implements ParsedArgs {
class TestParsedArgs implements ParsedArgs, SqlArgs {
[arg: string]: any;
_: string[];
aad?: boolean;
add?: boolean;
database?: string;
command?: string;
debugBrkPluginHost?: string;
@@ -67,7 +65,6 @@ class TestParsedArgs implements ParsedArgs {
help?: boolean;
'install-extension'?: string[];
'install-source'?: string;
integrated?: boolean;
'list-extensions'?: boolean;
locale?: string;
log?: string;
@@ -97,6 +94,7 @@ class TestParsedArgs implements ParsedArgs {
version?: boolean;
wait?: boolean;
waitMarkerFilePath?: string;
authenticationType?: string;
}
suite('commandLineService tests', () => {
@@ -197,6 +195,8 @@ suite('commandLineService tests', () => {
args.server = 'myserver';
args.database = 'mydatabase';
args.user = 'myuser';
args.authenticationType = Constants.sqlLogin;
connectionManagementService.setup((c) => c.showConnectionDialog()).verifiable(TypeMoq.Times.never());
connectionManagementService.setup(c => c.hasRegisteredServers()).returns(() => true).verifiable(TypeMoq.Times.atMostOnce());
connectionManagementService.setup(c => c.getConnectionGroups(TypeMoq.It.isAny())).returns(() => []);
@@ -373,6 +373,7 @@ suite('commandLineService tests', () => {
args.server = 'myserver';
args.database = 'mydatabase';
args.user = 'myuser';
args.authenticationType = Constants.sqlLogin;
args._ = ['c:\\dir\\file.sql'];
connectionManagementService.setup((c) => c.showConnectionDialog()).verifiable(TypeMoq.Times.never());
connectionManagementService.setup(c => c.hasRegisteredServers()).returns(() => true).verifiable(TypeMoq.Times.atMostOnce());
@@ -436,7 +437,7 @@ suite('commandLineService tests', () => {
test('handleUrl opens a new connection if a server name is passed', async () => {
// Given a URI pointing to a server
let uri: URI = URI.parse('azuredatastudio://connect?server=myserver&database=mydatabase&user=myuser');
let uri: URI = URI.parse('azuredatastudio://connect?server=myserver&database=mydatabase&user=myuser&authenticationType=SqlLogin');
const connectionManagementService: TypeMoq.Mock<IConnectionManagementService>
= TypeMoq.Mock.ofType<IConnectionManagementService>(TestConnectionManagementService, TypeMoq.MockBehavior.Strict);
@@ -527,7 +528,7 @@ suite('commandLineService tests', () => {
test('handleUrl ignores commands and connects', async () => {
// Given I pass a command
let uri: URI = URI.parse('azuredatastudio://connect?command=mycommand&server=myserver&database=mydatabase&user=myuser');
let uri: URI = URI.parse('azuredatastudio://connect?command=mycommand&server=myserver&database=mydatabase&user=myuser&authenticationType=SqlLogin');
const connectionManagementService: TypeMoq.Mock<IConnectionManagementService>
= TypeMoq.Mock.ofType<IConnectionManagementService>(TestConnectionManagementService, TypeMoq.MockBehavior.Strict);