diff --git a/src/sql/base/browser/ui/selectBox/selectBox.ts b/src/sql/base/browser/ui/selectBox/selectBox.ts index 3505136085..6230588a59 100644 --- a/src/sql/base/browser/ui/selectBox/selectBox.ts +++ b/src/sql/base/browser/ui/selectBox/selectBox.ts @@ -197,6 +197,10 @@ export class SelectBox extends vsSelectBox { return this._selectedOption; } + public get label(): string | undefined { + return this._dialogOptions.find(s => s.value === this._selectedOption).text; + } + public get values(): string[] { return this._dialogOptions.map(s => s.value); } diff --git a/src/sql/base/test/browser/ui/selectBox/selectBox.test.ts b/src/sql/base/test/browser/ui/selectBox/selectBox.test.ts index ab10eb352f..6ebfaa4d33 100644 --- a/src/sql/base/test/browser/ui/selectBox/selectBox.test.ts +++ b/src/sql/base/test/browser/ui/selectBox/selectBox.test.ts @@ -6,6 +6,7 @@ import * as assert from 'assert'; import { SelectBox, SelectOptionItemSQL } from 'sql/base/browser/ui/selectBox/selectBox'; import { deepClone, equals } from 'vs/base/common/objects'; +import { isUndefined } from 'vs/base/common/types'; const options: SelectOptionItemSQL[] = [ { text: 't1', value: 'v1' }, @@ -45,6 +46,7 @@ suite('Select Box tests', () => { }); assert(sb.value === options[0].value); + assert(sb.label === options[0].text); }); test('values get auto populated', () => { @@ -53,4 +55,18 @@ suite('Select Box tests', () => { assert(equals(sb.values, newOptions.map(s => s.text))); }); + + test('value did not contain label', () => { + const newOptions = deepClone(options).map(s => { return { text: s.text, value: undefined }; }); + delete newOptions[0].text; + const sb = new SelectBox(newOptions, undefined, undefined, undefined, undefined); + + + sb.onSelect({ + index: 0, + selected: options[0].value + }); + + assert(isUndefined(sb.label)); + }); }); diff --git a/src/sql/workbench/services/connection/browser/connectionWidget.ts b/src/sql/workbench/services/connection/browser/connectionWidget.ts index ff908611c2..005cd8005b 100644 --- a/src/sql/workbench/services/connection/browser/connectionWidget.ts +++ b/src/sql/workbench/services/connection/browser/connectionWidget.ts @@ -816,7 +816,7 @@ export class ConnectionWidget extends lifecycle.Disposable { } public get userName(): string { - return this.authenticationType === AuthenticationType.AzureMFA ? this._azureAccountDropdown.value : this._userNameInputBox.value; + return this.authenticationType === AuthenticationType.AzureMFA ? this._azureAccountDropdown.label : this._userNameInputBox.value; } public get password(): string {