rework some of some, add query to smoke (#10591)

This commit is contained in:
Anthony Dresser
2020-06-05 17:25:24 -07:00
committed by GitHub
parent cf0f3b0426
commit 72b2d9ef72
4 changed files with 23 additions and 53 deletions

View File

@@ -4,19 +4,9 @@
*--------------------------------------------------------------------------------------------*/
import { Code } from '../code';
import { waitForNewDialog, clickDialogButton } from './sqlutils';
import { TestServerProfile, AuthenticationType } from './testConfig';
import { waitForNewDialog } from './sqlutils';
const CONNECTION_DIALOG_TITLE = 'Connection';
const CONNECTION_DIALOG_SELECTOR: string = '.modal-dialog .modal-content .modal-body .connection-dialog';
const CONNECTION_DETAIL_CONTROL_SELECTOR: string = '.connection-provider-info .connection-table .connection-input';
const SERVER_INPUT_ARIA_LABEL = 'Server';
const USERNAME_INPUT_ARIA_LABEL = 'User name';
const PASSWORD_INPUT_ARIA_LABEL = 'Password';
const AUTH_TYPE_ARIA_LABEL = 'Authentication type';
const CONNECT_BUTTON_ARIA_LABEL = 'Connect';
export class ConnectionDialog {
@@ -26,26 +16,21 @@ export class ConnectionDialog {
await waitForNewDialog(this.code, CONNECTION_DIALOG_TITLE);
}
async connect(profile: TestServerProfile): Promise<void> {
await this.code.waitForSetValue(this.getInputCssSelector(SERVER_INPUT_ARIA_LABEL), profile.serverName);
if (profile.authenticationType === AuthenticationType.SqlLogin) {
await this.code.waitAndClick(this.getSelectCssSelector(AUTH_TYPE_ARIA_LABEL));
await this.selectAuthType(profile.authenticationTypeDisplayName);
await this.code.waitForSetValue(this.getInputCssSelector(USERNAME_INPUT_ARIA_LABEL), profile.userName);
await this.code.waitForSetValue(this.getInputCssSelector(PASSWORD_INPUT_ARIA_LABEL), profile.password);
}
await clickDialogButton(this.code, CONNECT_BUTTON_ARIA_LABEL);
private static readonly PROVIDER_SELECTOR = '.modal .modal-body select[aria-label="Connection type"]';
async setProvider(provider: string): Promise<void> {
await this.code.waitForSetValue(ConnectionDialog.PROVIDER_SELECTOR, provider);
}
private getInputCssSelector(ariaLabel: string): string {
return `${CONNECTION_DIALOG_SELECTOR} ${CONNECTION_DETAIL_CONTROL_SELECTOR} .monaco-inputbox input[aria-label="${ariaLabel}"]`;
private static readonly TARGET_SELECTOR = '.modal .modal-body input[aria-label="${TARGET}"]';
async setTarget(target: string, value: string): Promise<void> {
await this.code.waitForSetValue(ConnectionDialog.TARGET_SELECTOR.replace('${TARGET}', '' + target), value);
}
private getSelectCssSelector(ariaLabel: string): string {
return `${CONNECTION_DIALOG_SELECTOR} ${CONNECTION_DETAIL_CONTROL_SELECTOR} select[aria-label="${ariaLabel}"]`;
}
private static readonly CONNECT_BUTTON_SELECTOR = '.modal .modal-footer a[aria-label="Connect"]';
async connect(): Promise<void> {
await this.code.waitAndClick(ConnectionDialog.CONNECT_BUTTON_SELECTOR);
private async selectAuthType(authType: string) {
await this.code.waitAndClick(`.context-view.bottom.left .monaco-select-box-dropdown-container .select-box-dropdown-list-container .monaco-list .monaco-scrollable-element .monaco-list-rows .monaco-list-row div[aria-label="${authType}"][class*="option-text"]`);
const selector = `.editor-instance .monaco-editor textarea`;
return this.code.waitForActiveElement(selector);
}
}