mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
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:
@@ -34,11 +34,10 @@ import { IEnvironmentService } from 'vs/platform/environment/common/environment'
|
|||||||
|
|
||||||
const connectAuthority = 'connect';
|
const connectAuthority = 'connect';
|
||||||
|
|
||||||
interface SqlArgs {
|
export interface SqlArgs {
|
||||||
_?: string[];
|
_?: string[];
|
||||||
aad?: boolean;
|
authenticationType?: string
|
||||||
database?: string;
|
database?: string;
|
||||||
integrated?: boolean;
|
|
||||||
server?: string;
|
server?: string;
|
||||||
user?: string;
|
user?: string;
|
||||||
command?: string;
|
command?: string;
|
||||||
@@ -220,11 +219,11 @@ export class CommandLineWorkbenchContribution implements IWorkbenchContribution,
|
|||||||
let profile = new ConnectionProfile(this._capabilitiesService, null);
|
let profile = new ConnectionProfile(this._capabilitiesService, null);
|
||||||
// We want connection store to use any matching password it finds
|
// We want connection store to use any matching password it finds
|
||||||
profile.savePassword = true;
|
profile.savePassword = true;
|
||||||
profile.providerName = args.provider ? args.provider : Constants.mssqlProviderName;
|
profile.providerName = args.provider ?? Constants.mssqlProviderName;
|
||||||
profile.serverName = args.server;
|
profile.serverName = args.server;
|
||||||
profile.databaseName = args.database ? args.database : '';
|
profile.databaseName = args.database ?? '';
|
||||||
profile.userName = args.user ? args.user : '';
|
profile.userName = args.user ?? '';
|
||||||
profile.authenticationType = args.integrated ? Constants.integrated : args.aad ? Constants.azureMFA : (profile.userName.length > 0) ? Constants.sqlLogin : Constants.integrated;
|
profile.authenticationType = args.authenticationType ?? Constants.integrated;
|
||||||
profile.connectionName = '';
|
profile.connectionName = '';
|
||||||
profile.setOptionValue('applicationName', Constants.applicationName);
|
profile.setOptionValue('applicationName', Constants.applicationName);
|
||||||
profile.setOptionValue('databaseDisplayName', profile.databaseName);
|
profile.setOptionValue('databaseDisplayName', profile.databaseName);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import * as TypeMoq from 'typemoq';
|
|||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
|
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
|
||||||
import { ConnectionProfileGroup } from 'sql/platform/connection/common/connectionProfileGroup';
|
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 * as Constants from 'sql/platform/connection/common/constants';
|
||||||
import { ParsedArgs } from 'vs/platform/environment/node/argv';
|
import { ParsedArgs } from 'vs/platform/environment/node/argv';
|
||||||
import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilitiesService';
|
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 { FileQueryEditorInput } from 'sql/workbench/contrib/query/common/fileQueryEditorInput';
|
||||||
import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService';
|
import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService';
|
||||||
|
|
||||||
class TestParsedArgs implements ParsedArgs {
|
class TestParsedArgs implements ParsedArgs, SqlArgs {
|
||||||
[arg: string]: any;
|
[arg: string]: any;
|
||||||
_: string[];
|
_: string[];
|
||||||
aad?: boolean;
|
|
||||||
add?: boolean;
|
|
||||||
database?: string;
|
database?: string;
|
||||||
command?: string;
|
command?: string;
|
||||||
debugBrkPluginHost?: string;
|
debugBrkPluginHost?: string;
|
||||||
@@ -67,7 +65,6 @@ class TestParsedArgs implements ParsedArgs {
|
|||||||
help?: boolean;
|
help?: boolean;
|
||||||
'install-extension'?: string[];
|
'install-extension'?: string[];
|
||||||
'install-source'?: string;
|
'install-source'?: string;
|
||||||
integrated?: boolean;
|
|
||||||
'list-extensions'?: boolean;
|
'list-extensions'?: boolean;
|
||||||
locale?: string;
|
locale?: string;
|
||||||
log?: string;
|
log?: string;
|
||||||
@@ -97,6 +94,7 @@ class TestParsedArgs implements ParsedArgs {
|
|||||||
version?: boolean;
|
version?: boolean;
|
||||||
wait?: boolean;
|
wait?: boolean;
|
||||||
waitMarkerFilePath?: string;
|
waitMarkerFilePath?: string;
|
||||||
|
authenticationType?: string;
|
||||||
}
|
}
|
||||||
suite('commandLineService tests', () => {
|
suite('commandLineService tests', () => {
|
||||||
|
|
||||||
@@ -197,6 +195,8 @@ suite('commandLineService tests', () => {
|
|||||||
args.server = 'myserver';
|
args.server = 'myserver';
|
||||||
args.database = 'mydatabase';
|
args.database = 'mydatabase';
|
||||||
args.user = 'myuser';
|
args.user = 'myuser';
|
||||||
|
args.authenticationType = Constants.sqlLogin;
|
||||||
|
|
||||||
connectionManagementService.setup((c) => c.showConnectionDialog()).verifiable(TypeMoq.Times.never());
|
connectionManagementService.setup((c) => c.showConnectionDialog()).verifiable(TypeMoq.Times.never());
|
||||||
connectionManagementService.setup(c => c.hasRegisteredServers()).returns(() => true).verifiable(TypeMoq.Times.atMostOnce());
|
connectionManagementService.setup(c => c.hasRegisteredServers()).returns(() => true).verifiable(TypeMoq.Times.atMostOnce());
|
||||||
connectionManagementService.setup(c => c.getConnectionGroups(TypeMoq.It.isAny())).returns(() => []);
|
connectionManagementService.setup(c => c.getConnectionGroups(TypeMoq.It.isAny())).returns(() => []);
|
||||||
@@ -373,6 +373,7 @@ suite('commandLineService tests', () => {
|
|||||||
args.server = 'myserver';
|
args.server = 'myserver';
|
||||||
args.database = 'mydatabase';
|
args.database = 'mydatabase';
|
||||||
args.user = 'myuser';
|
args.user = 'myuser';
|
||||||
|
args.authenticationType = Constants.sqlLogin;
|
||||||
args._ = ['c:\\dir\\file.sql'];
|
args._ = ['c:\\dir\\file.sql'];
|
||||||
connectionManagementService.setup((c) => c.showConnectionDialog()).verifiable(TypeMoq.Times.never());
|
connectionManagementService.setup((c) => c.showConnectionDialog()).verifiable(TypeMoq.Times.never());
|
||||||
connectionManagementService.setup(c => c.hasRegisteredServers()).returns(() => true).verifiable(TypeMoq.Times.atMostOnce());
|
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 () => {
|
test('handleUrl opens a new connection if a server name is passed', async () => {
|
||||||
// Given a URI pointing to a server
|
// 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>
|
const connectionManagementService: TypeMoq.Mock<IConnectionManagementService>
|
||||||
= TypeMoq.Mock.ofType<IConnectionManagementService>(TestConnectionManagementService, TypeMoq.MockBehavior.Strict);
|
= TypeMoq.Mock.ofType<IConnectionManagementService>(TestConnectionManagementService, TypeMoq.MockBehavior.Strict);
|
||||||
@@ -527,7 +528,7 @@ suite('commandLineService tests', () => {
|
|||||||
|
|
||||||
test('handleUrl ignores commands and connects', async () => {
|
test('handleUrl ignores commands and connects', async () => {
|
||||||
// Given I pass a command
|
// 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>
|
const connectionManagementService: TypeMoq.Mock<IConnectionManagementService>
|
||||||
= TypeMoq.Mock.ofType<IConnectionManagementService>(TestConnectionManagementService, TypeMoq.MockBehavior.Strict);
|
= TypeMoq.Mock.ofType<IConnectionManagementService>(TestConnectionManagementService, TypeMoq.MockBehavior.Strict);
|
||||||
|
|||||||
Reference in New Issue
Block a user