mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 19:07:08 +00:00
Adds support for opening QuickStart and Users blades, multiple APIs to support the canpinAllBladeParts test and support for waiting for notifications
This commit is contained in:
parent
ef32bff4d1
commit
5fb76e8991
@ -17,11 +17,11 @@ var extensionUrl = 'https://localhost:44300/';
|
||||
var voidPromise: Q.Promise<void>;
|
||||
var boolPromise: Q.Promise<boolean>;
|
||||
var anyPromise: Q.Promise<any>;
|
||||
var stringPromise: Q.Promise<string>;
|
||||
|
||||
var summaryBlade = new testFx.Blades.Blade(resourceName);
|
||||
|
||||
function TestPortal() {
|
||||
|
||||
function TestPortal() {
|
||||
testFx.portal.portalContext.signInEmail = userName;
|
||||
testFx.portal.portalContext.signInPassword = password;
|
||||
testFx.portal.portalContext.features = [{ name: "greatfeature", value: "true" }];
|
||||
@ -35,11 +35,17 @@ function TestPortal() {
|
||||
var stringPromise = testFx.portal.takeScreenshot("TestPortal");
|
||||
var stringArrayPromise = testFx.portal.getBrowserLogs(testFx.LogLevel.All);
|
||||
anyPromise = testFx.portal.waitUntilElementDoesNotContainAttribute(testFx.Locators.By.className('part'), 'class', 'invalid');
|
||||
voidPromise = testFx.portal.goHome();
|
||||
boolPromise = testFx.portal.waitForElementVisible(summaryBlade.getLocator());
|
||||
var anyArrayPromise = testFx.portal.waitForElementsLocated(summaryBlade.getLocator());
|
||||
var voidPromise = testFx.portal.executeScript<void>("console.log('hello from script');");
|
||||
stringPromise = testFx.portal.getCurrentUrl();
|
||||
}
|
||||
|
||||
function TestBlades() {
|
||||
var blade = new testFx.Blades.Blade(resourceName);
|
||||
blade.clickCommand('Delete');
|
||||
var bladePromise = blade.clickCommand('Delete');
|
||||
var tilesPromise = blade.getTiles();
|
||||
|
||||
var createBlade = new testFx.Blades.CreateBlade(bladeTitle);
|
||||
voidPromise = createBlade.actionBar.createButton.click();
|
||||
@ -52,6 +58,11 @@ function TestBlades() {
|
||||
|
||||
var specPickerBlade = new testFx.Blades.SpecPickerBlade(bladeTitle);
|
||||
specPickerBlade.pickSpec('S2');
|
||||
|
||||
var quickStartBlade = new testFx.Blades.QuickStartBlade();
|
||||
voidPromise = quickStartBlade.clickLink('Learn more');
|
||||
|
||||
var usersBlade = new testFx.Blades.UsersBlade();
|
||||
}
|
||||
|
||||
function TestParts() {
|
||||
@ -60,12 +71,21 @@ function TestParts() {
|
||||
boolPromise = part.isSelected();
|
||||
boolPromise = part.waitUntilLoaded();
|
||||
boolPromise = part.isLoaded();
|
||||
boolPromise = part.isClickable();
|
||||
boolPromise = part.hasError();
|
||||
|
||||
var resourceSummary = new testFx.Parts.ResourceSummaryPart(summaryBlade.getLocator());
|
||||
var count = resourceSummary.properties.length;
|
||||
voidPromise = resourceSummary.quickStartHotSpot.click();
|
||||
voidPromise = resourceSummary.accessHotSpot.click();
|
||||
|
||||
var pricingTier = new testFx.Parts.PricingTierPart(summaryBlade.getLocator());
|
||||
voidPromise = pricingTier.click();
|
||||
|
||||
var tile = new testFx.Parts.Tile(summaryBlade.getLocator());
|
||||
voidPromise = tile.tryPin();
|
||||
var part: testFx.Parts.Part = tile.getPart();
|
||||
voidPromise = tile.waitUntilLoaded();
|
||||
}
|
||||
|
||||
function TestControls() {
|
||||
@ -78,6 +98,9 @@ function TestControls() {
|
||||
|
||||
var textField = new testFx.Controls.TextField(summaryBlade.getLocator(), "Resource name");
|
||||
var textFieldPromise = textField.sendKeys(resourceName);
|
||||
|
||||
var hotSpot = new testFx.Controls.HotSpot(summaryBlade.getLocator());
|
||||
boolPromise = hotSpot.isSelected();
|
||||
}
|
||||
|
||||
function TestActionBars() {
|
||||
@ -90,4 +113,30 @@ function TestActionBars() {
|
||||
|
||||
var pickerBar = new testFx.ActionBars.PickerActionBar(summaryBlade.getLocator());
|
||||
voidPromise = pickerBar.selectButton.click();
|
||||
}
|
||||
|
||||
function TestCommands() {
|
||||
var menu = new testFx.Commands.ContextMenu();
|
||||
var itemName = "Pin";
|
||||
boolPromise = menu.hasItem(itemName);
|
||||
voidPromise = menu.clickItem(itemName);
|
||||
|
||||
var item = new testFx.Commands.ContextMenuItem(menu.getLocator(), itemName);
|
||||
voidPromise = item.click();
|
||||
}
|
||||
|
||||
function TestStartBoard() {
|
||||
var board = new testFx.StartBoard();
|
||||
var tilesPromise = board.getTiles();
|
||||
}
|
||||
|
||||
function TestNotifications() {
|
||||
var menu = new testFx.Notifications.NotificationsMenu();
|
||||
menu.waitForNewNotification("success").then((notification) => {
|
||||
stringPromise = notification.getDescription();
|
||||
});
|
||||
}
|
||||
|
||||
function TestTests() {
|
||||
boolPromise = testFx.Tests.Parts.canPinAllBladeParts(resourceId, bladeTitle);
|
||||
}
|
||||
82
msportalfx-test/msportalfx-test.d.ts
vendored
82
msportalfx-test/msportalfx-test.d.ts
vendored
@ -76,6 +76,7 @@ declare module MsPortalTestFx {
|
||||
|
||||
constructor(title: string);
|
||||
clickCommand(commandText: string): Q.Promise<Blade>;
|
||||
getTiles(): Q.Promise<Parts.Tile[]>;
|
||||
}
|
||||
|
||||
export class CreateBlade extends Blade {
|
||||
@ -95,6 +96,15 @@ declare module MsPortalTestFx {
|
||||
export class SpecPickerBlade extends Blade {
|
||||
pickSpec(specCode: string): Q.Promise<void>;
|
||||
}
|
||||
|
||||
export class QuickStartBlade extends Blade {
|
||||
constructor();
|
||||
clickLink(linkText: string): Q.Promise<void>;
|
||||
}
|
||||
|
||||
export class UsersBlade extends Blade {
|
||||
constructor();
|
||||
}
|
||||
}
|
||||
|
||||
export module Controls {
|
||||
@ -127,12 +137,17 @@ declare module MsPortalTestFx {
|
||||
|
||||
export class TextField extends FormElement {
|
||||
constructor(parentLocator?: Locators.Locator, label?: string, baseLocator?: Locators.Locator);
|
||||
sendKeys(...var_args: string[]): Q.Promise<TextField>;
|
||||
sendKeys(...var_args: string[]): Q.Promise<void>;
|
||||
}
|
||||
|
||||
export class ResourceFilterTextField extends TextField {
|
||||
constructor(parentLocator?: Locators.Locator);
|
||||
}
|
||||
|
||||
export class HotSpot extends PortalElement {
|
||||
constructor(parentLocator?: Locators.Locator, baseLocator?: Locators.Locator);
|
||||
isSelected(): Q.Promise<boolean>;
|
||||
}
|
||||
}
|
||||
|
||||
export module Parts {
|
||||
@ -143,6 +158,8 @@ declare module MsPortalTestFx {
|
||||
isSelected(): Q.Promise<boolean>;
|
||||
isLoaded(): Q.Promise<boolean>;
|
||||
waitUntilLoaded(timeout?: number): Q.Promise<boolean>;
|
||||
isClickable(): Q.Promise<boolean>;
|
||||
hasError(): Q.Promise<boolean>;
|
||||
}
|
||||
|
||||
export class PartProperty extends MsPortalTestFx.PortalElement {
|
||||
@ -155,6 +172,8 @@ declare module MsPortalTestFx {
|
||||
export class ResourceSummaryPart extends Part {
|
||||
public properties: Array<PartProperty>;
|
||||
public resourceGroupProperty: PartProperty;
|
||||
public quickStartHotSpot: Controls.HotSpot;
|
||||
public accessHotSpot: Controls.HotSpot;
|
||||
|
||||
constructor(parentLocator?: Locators.Locator);
|
||||
}
|
||||
@ -166,17 +185,57 @@ declare module MsPortalTestFx {
|
||||
public progressLocator: Locators.Locator;
|
||||
|
||||
constructor(parentLocator?: Locators.Locator);
|
||||
tryPin(): Q.Promise<void>;
|
||||
getPart(): Part;
|
||||
waitUntilLoaded(timeout?: number): Q.Promise<void>;
|
||||
}
|
||||
}
|
||||
|
||||
export module Commands {
|
||||
export class ContextMenu extends PortalElement {
|
||||
constructor();
|
||||
public hasItem(text: string): Q.Promise<boolean>;
|
||||
public clickItem(text: string): Q.Promise<void>;
|
||||
}
|
||||
|
||||
export class ContextMenuItem extends PortalElement {
|
||||
constructor(parentLocator: Locators.Locator, text?: string);
|
||||
}
|
||||
}
|
||||
|
||||
export module Notifications {
|
||||
export class Notification extends PortalElement {
|
||||
constructor();
|
||||
getTitle(): Q.Promise<string>;
|
||||
getDescription(): Q.Promise<string>;
|
||||
}
|
||||
|
||||
export class NotificationsMenu extends PortalElement {
|
||||
constructor();
|
||||
waitForNewNotification(title?: string, description?: string, timeout?: number): Q.Promise<Notification>;
|
||||
}
|
||||
}
|
||||
|
||||
export module Tests {
|
||||
export module Parts {
|
||||
export function canPinAllBladeParts(targetBladeDeepLink: string, targetBladeTitle: string, timeout?: number): Q.Promise<boolean>;
|
||||
}
|
||||
}
|
||||
|
||||
export class PortalElement {
|
||||
protected baseLocator: Locators.Locator;
|
||||
public baseLocator: Locators.Locator;
|
||||
protected parentLocator: Locators.Locator;
|
||||
|
||||
constructor(baseLocator: Locators.Locator, parentLocator?: Locators.Locator);
|
||||
getLocator(): Locators.Locator;
|
||||
click(): Q.Promise<void>;
|
||||
rightClick(): Q.Promise<void>;
|
||||
getAttribute(attributeName: string): Q.Promise<string>;
|
||||
sendKeys(...var_args: string[]): Q.Promise<void>;
|
||||
getText(): Q.Promise<string>;
|
||||
isPresent(): Q.Promise<boolean>;
|
||||
isElementPresent(subLocator: Locators.Locator): Q.Promise<boolean>;
|
||||
isDisplayed(): Q.Promise<boolean>;
|
||||
getLocator(): Locators.Locator;
|
||||
}
|
||||
|
||||
export interface TestExtension {
|
||||
@ -216,23 +275,23 @@ declare module MsPortalTestFx {
|
||||
|
||||
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>;
|
||||
|
||||
goHome(timeout?: number): Q.Promise<void>;
|
||||
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>;
|
||||
waitForElementVisible(locator: Locators.Locator, timeout?: number): Q.Promise<boolean>;
|
||||
waitForElementNotVisible(locator: Locators.Locator, timeout?: number): Q.Promise<boolean>;
|
||||
waitUntilElementContainsAttribute(locator: Locators.Locator, attributeName: string, attributeValue: string, timeout?: number): Q.Promise<any>;
|
||||
waitUntilElementDoesNotContainAttribute(locator: Locators.Locator, attributeName: string, attributeValue: string, timeout?: number): Q.Promise<any>;
|
||||
waitForElementLocated(locator: Locators.Locator, timeout?: number): Q.Promise<any>;
|
||||
waitForElementsLocated(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>;
|
||||
applyFeature(name: string, value: string): void;
|
||||
getCurrentUrl(): Q.Promise<string>;
|
||||
quit(): Q.Promise<any>;
|
||||
}
|
||||
|
||||
@ -240,6 +299,11 @@ declare module MsPortalTestFx {
|
||||
clickUntrustedExtensionsOkButton(): Q.Promise<void>;
|
||||
}
|
||||
|
||||
export class StartBoard extends PortalElement {
|
||||
constructor();
|
||||
getTiles(): Q.Promise<Parts.Tile[]>;
|
||||
}
|
||||
|
||||
export var portal: Portal;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user