mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-08-25 11:11:46 +08:00
Merge pull request #5905 from julioct/master
Add definitions for msportalfx-test
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
|
||||
/// <reference path="msportalfx-test.d.ts" />
|
||||
|
||||
import testFx = require('MsPortalFx-Test');
|
||||
|
||||
var galleryPackageName = "My.Package";
|
||||
var bladeTitle = "A Service";
|
||||
var resourceProvider = 'My.Provider';
|
||||
var resourceType = 'myResourceType';
|
||||
var resourceName = 'myResource';
|
||||
var userName = 'johndoe@johndoe.com';
|
||||
var password = '123';
|
||||
var resourceId = '/subscriptions/123/resourceGroups/456/providers/My.Provider/myResourceType/myResource';
|
||||
var extensionName = 'LocalExtension';
|
||||
var label = 'Field label';
|
||||
var extensionUrl = 'https://localhost:44300/';
|
||||
var voidPromise: Q.Promise<void>;
|
||||
var boolPromise: Q.Promise<boolean>;
|
||||
var anyPromise: Q.Promise<any>;
|
||||
|
||||
var summaryBlade = new testFx.Blades.Blade(resourceName);
|
||||
|
||||
function TestPortal() {
|
||||
|
||||
testFx.portal.portalContext.signInEmail = userName;
|
||||
testFx.portal.portalContext.signInPassword = password;
|
||||
testFx.portal.portalContext.features = [{ name: "greatfeature", value: "true" }];
|
||||
testFx.portal.portalContext.testExtensions = [{ name: extensionName, uri: extensionUrl }];
|
||||
|
||||
anyPromise = testFx.portal.waitForElementLocated(summaryBlade.getLocator(), 30000);
|
||||
anyPromise = testFx.portal.quit();
|
||||
var createBladePromise = testFx.portal.openGalleryCreateBlade(galleryPackageName, bladeTitle, 20000);
|
||||
var browseResourcePromise = testFx.portal.openBrowseBlade(resourceProvider, resourceType, bladeTitle, 20000);
|
||||
var bladePromise = testFx.portal.openResourceBlade(resourceId, summaryBlade.title, 20000)
|
||||
var stringPromise = testFx.portal.takeScreenshot("TestPortal");
|
||||
var stringArrayPromise = testFx.portal.getBrowserLogs(testFx.LogLevel.All);
|
||||
}
|
||||
|
||||
function TestBlades() {
|
||||
var blade = new testFx.Blades.Blade(resourceName);
|
||||
blade.clickCommand('Delete');
|
||||
|
||||
var createBlade = new testFx.Blades.CreateBlade(bladeTitle);
|
||||
voidPromise = createBlade.actionBar.clickCreate();
|
||||
voidPromise = createBlade.actionBar.clickDelete();
|
||||
|
||||
var browseBlade = new testFx.Blades.BrowseResourceBlade(bladeTitle);
|
||||
voidPromise = browseBlade.selectResource(resourceName);
|
||||
|
||||
var pickerBlade = new testFx.Blades.PickerBlade(bladeTitle);
|
||||
pickerBlade.pickItem('abc');
|
||||
}
|
||||
|
||||
function TestParts() {
|
||||
var part = new testFx.Parts.Part(summaryBlade.getLocator(), "Roles");
|
||||
voidPromise = part.click();
|
||||
boolPromise = part.isSelected();
|
||||
boolPromise = part.waitUntilLoaded();
|
||||
boolPromise = part.isLoaded();
|
||||
|
||||
var resourceSummary = new testFx.Parts.ResourceSummaryPart(summaryBlade.getLocator());
|
||||
var count = resourceSummary.properties.length;
|
||||
}
|
||||
|
||||
function TestControls() {
|
||||
var selector = new testFx.Controls.SelectorField(summaryBlade.getLocator(), label);
|
||||
voidPromise = selector.openPicker();
|
||||
|
||||
var creatorAndSelector = new testFx.Controls.CreatorAndSelectorField(summaryBlade.getLocator(), label, label);
|
||||
var creatorAndSelectorPromise = creatorAndSelector.clickCreateNew();
|
||||
creatorAndSelectorPromise = creatorAndSelector.enterNewValue('XYZ');
|
||||
|
||||
var textField = new testFx.Controls.TextField(summaryBlade.getLocator(), "Resource name");
|
||||
var textFieldPromise = textField.sendKeys(resourceName);
|
||||
}
|
||||
|
||||
function TestActionBars() {
|
||||
var bar = new testFx.ActionBars.ActionBar(summaryBlade.getLocator());
|
||||
voidPromise = bar.clickCreate();
|
||||
voidPromise = bar.clickDelete();
|
||||
}
|
||||
Vendored
+224
@@ -0,0 +1,224 @@
|
||||
// Type definitions for msportalfx-test
|
||||
// Project: https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test
|
||||
// Definitions by: Julio Casal <https://github.com/julioct>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
/// <reference path="../q/Q.d.ts" />
|
||||
|
||||
declare module MsPortalTestFx {
|
||||
|
||||
export module Locators {
|
||||
export class Locator {
|
||||
seleniumLocator: any;
|
||||
findElements(context: any): any;
|
||||
toString(): string;
|
||||
}
|
||||
|
||||
export class ContentLocator extends Locator {
|
||||
locators: Array<Locator>;
|
||||
constructor(innerLocators: Locator[]);
|
||||
findElements(context: any): any;
|
||||
toString(): string;
|
||||
}
|
||||
|
||||
export class ChainedLocator extends Locator {
|
||||
locators: Array<Locator>;
|
||||
constructor(innerLocators: Locator[]);
|
||||
findElements(context: any): any;
|
||||
toString(): string;
|
||||
}
|
||||
|
||||
export class By {
|
||||
static className(value: string): Locator;
|
||||
static css(value: string): Locator;
|
||||
static id(value: string): Locator;
|
||||
static js(script: any, ...var_args: any[]): Locator;
|
||||
static linkText(value: string): Locator;
|
||||
static name(value: string): Locator;
|
||||
static partialLinkText(value: string): Locator;
|
||||
static tagName(value: string): Locator;
|
||||
static xpath(value: string): Locator;
|
||||
static chained(...values: Locator[]): Locator;
|
||||
static content(...values: Locator[]): Locator;
|
||||
}
|
||||
}
|
||||
|
||||
export module ActionBars {
|
||||
export class ActionBar extends MsPortalTestFx.PortalElement {
|
||||
constructor(parentLocator?: Locators.Locator);
|
||||
clickCreate(): Q.Promise<void>;
|
||||
clickDelete(): Q.Promise<void>;
|
||||
}
|
||||
}
|
||||
|
||||
export module Blades {
|
||||
export class Blade extends MsPortalTestFx.PortalElement {
|
||||
public title: string;
|
||||
|
||||
constructor(title: string);
|
||||
clickCommand(commandText: string): Q.Promise<Blade>;
|
||||
}
|
||||
|
||||
export class CreateBlade extends Blade {
|
||||
public actionBar: ActionBars.ActionBar;
|
||||
}
|
||||
|
||||
export class BrowseResourceBlade extends Blade {
|
||||
constructor(title: string);
|
||||
selectResource(resourceName: string): Q.Promise<void>;
|
||||
filterItems(filter: string): Q.Promise<BrowseResourceBlade>;
|
||||
}
|
||||
|
||||
export class PickerBlade extends Blade {
|
||||
constructor(title: string);
|
||||
pickItem(item: string): Q.Promise<void>;
|
||||
}
|
||||
}
|
||||
|
||||
export module Controls {
|
||||
export class FormElement extends MsPortalTestFx.PortalElement {
|
||||
protected label: string;
|
||||
|
||||
constructor(baseLocator: Locators.Locator, parentLocator?: Locators.Locator, label?: string);
|
||||
}
|
||||
|
||||
export class CheckBoxField extends FormElement {
|
||||
constructor(parentLocator?: Locators.Locator, label?: string);
|
||||
}
|
||||
|
||||
export class SelectorField extends FormElement {
|
||||
constructor(parentLocator?: Locators.Locator, label?: string);
|
||||
openPicker(): Q.Promise<void>;
|
||||
}
|
||||
|
||||
export class CreatorAndSelectorField extends FormElement {
|
||||
constructor(parentLocator?: Locators.Locator, selectModeLabel?: string, createModeLabel?: string);
|
||||
openPicker(): Q.Promise<void>;
|
||||
clickCreateNew(): Q.Promise<CreatorAndSelectorField>;
|
||||
enterNewValue(...var_args: string[]): Q.Promise<CreatorAndSelectorField>;
|
||||
}
|
||||
|
||||
export class GridCell extends MsPortalTestFx.PortalElement {
|
||||
constructor(text: string, parentLocator?: Locators.Locator);
|
||||
getLocator(): Locators.Locator;
|
||||
}
|
||||
|
||||
export class TextField extends FormElement {
|
||||
constructor(parentLocator?: Locators.Locator, label?: string, baseLocator?: Locators.Locator);
|
||||
sendKeys(...var_args: string[]): Q.Promise<TextField>;
|
||||
}
|
||||
|
||||
export class ResourceFilterTextField extends TextField {
|
||||
constructor(parentLocator?: Locators.Locator);
|
||||
}
|
||||
}
|
||||
|
||||
export module Parts {
|
||||
export class Part extends MsPortalTestFx.PortalElement {
|
||||
public innerText: string;
|
||||
|
||||
constructor(parentLocator?: Locators.Locator, innerText?: string, baseLocator?: Locators.Locator);
|
||||
isSelected(): Q.Promise<boolean>;
|
||||
isLoaded(): Q.Promise<boolean>;
|
||||
waitUntilLoaded(timeout?: number): Q.Promise<boolean>;
|
||||
}
|
||||
|
||||
export class PartProperty extends MsPortalTestFx.PortalElement {
|
||||
public name: string;
|
||||
|
||||
constructor(name: string, parentLocator?: Locators.Locator);
|
||||
getValue(): Q.Promise<string>;
|
||||
}
|
||||
|
||||
export class ResourceSummaryPart extends Part {
|
||||
public properties: Array<PartProperty>;
|
||||
public resourceGroupProperty: PartProperty;
|
||||
|
||||
constructor(parentLocator?: Locators.Locator);
|
||||
}
|
||||
|
||||
export class Tile extends MsPortalTestFx.PortalElement {
|
||||
public progressLocator: Locators.Locator;
|
||||
|
||||
constructor(parentLocator?: Locators.Locator);
|
||||
}
|
||||
}
|
||||
|
||||
export class PortalElement {
|
||||
protected baseLocator: Locators.Locator;
|
||||
protected parentLocator: Locators.Locator;
|
||||
|
||||
constructor(baseLocator: Locators.Locator, parentLocator?: Locators.Locator);
|
||||
getLocator(): Locators.Locator;
|
||||
click(): Q.Promise<void>;
|
||||
getAttribute(attributeName: string): Q.Promise<string>;
|
||||
}
|
||||
|
||||
export interface TestExtension {
|
||||
name: string;
|
||||
uri: string;
|
||||
}
|
||||
|
||||
export interface Feature {
|
||||
name: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export interface PortalContext {
|
||||
capabilities: {
|
||||
browserName: string;
|
||||
chromeOptions: {
|
||||
args: string[]
|
||||
}
|
||||
},
|
||||
chromeDriverPath?: string,
|
||||
portalUrl: string;
|
||||
signInUrl?: string;
|
||||
signInEmail?: string;
|
||||
signInPassword?: string;
|
||||
features?: Feature[];
|
||||
testExtensions?: TestExtension[];
|
||||
}
|
||||
|
||||
export enum LogLevel {
|
||||
All,
|
||||
Debug,
|
||||
Info,
|
||||
Warning,
|
||||
Severe,
|
||||
Off
|
||||
}
|
||||
|
||||
export class Portal {
|
||||
portalContext: PortalContext;
|
||||
click(locator: Locators.Locator): Q.Promise<void>;
|
||||
sendKeys(locator: Locators.Locator, ...var_args: string[]): Q.Promise<void>
|
||||
getText(locator: Locators.Locator): Q.Promise<string>;
|
||||
openGalleryCreateBlade(galleryPackageName: string, bladeTitle: string, timeout?: number): Q.Promise<Blades.CreateBlade>;
|
||||
openBrowseBlade(resourceProvider: string, resourceType: string, bladeTitle: string, timeout?: number): Q.Promise<Blades.BrowseResourceBlade>;
|
||||
openResourceBlade(resourceId: string, bladeTitle: string, timeout?: number): Q.Promise<Blades.Blade>;
|
||||
navigateToDeepLink(deepLink: string, timeout?: number): Q.Promise<any>;
|
||||
getAttribute(locator: Locators.Locator, attributeName: string, timeout?: number): Q.Promise<string>;
|
||||
waitForElementNotVisible(locator: Locators.Locator, timeout?: number): Q.Promise<boolean>;
|
||||
waitUntilElementContainsAttribute(locator: Locators.Locator, attributeName: string, attributeValue: string, timeout?: number): Q.Promise<any>;
|
||||
waitForElementLocated(locator: Locators.Locator, timeout?: number): Q.Promise<any>;
|
||||
takeScreenshot(filePrefix?: string): Q.Promise<string>;
|
||||
goHome(timeout?: number): Q.Promise<void>;
|
||||
getBrowserLogs(level: LogLevel): Q.Promise<string[]>;
|
||||
applyFeature(name: string, value: string): void;
|
||||
executeScript<T>(script: string): Q.Promise<T>;
|
||||
quit(): Q.Promise<any>;
|
||||
}
|
||||
|
||||
export class SplashScreen extends PortalElement {
|
||||
clickUntrustedExtensionsOkButton(): Q.Promise<void>;
|
||||
}
|
||||
|
||||
export var portal: Portal;
|
||||
}
|
||||
|
||||
|
||||
|
||||
declare module "MsPortalFx-Test" {
|
||||
export = MsPortalTestFx;
|
||||
}
|
||||
Reference in New Issue
Block a user