[ACA-1946] automate tests for Favourite Libraries list (#803)

* automate part of the Favourite Libraries tests
refactor File Libraries tests to include My Libraries

* rephrasing

* forgotten changes

* fix tests
This commit is contained in:
Adina Parpalita
2018-11-16 15:43:16 +02:00
committed by Suzana Dirla
parent dcacbc1210
commit ca67da3657
24 changed files with 416 additions and 192 deletions

View File

@@ -36,6 +36,7 @@ export class Sidenav extends Component {
label: '.item--label',
expansion_panel: ".mat-expansion-panel-header",
expansion_panel_content: ".mat-expansion-panel-body",
active: 'item--active',
activeLink: '.item--active',
newButton: '[data-automation-id="create-button"]'
};
@@ -50,6 +51,23 @@ export class Sidenav extends Component {
super(Sidenav.selectors.root, ancestor);
}
private async expandMenu(name: string) {
try{
if (await element(by.cssContainingText('.mat-expanded', name)).isPresent()) {
return Promise.resolve();
} else {
const link = this.getLink(name);
await Utils.waitUntilElementClickable(link);
await link.click();
await element(by.css(Sidenav.selectors.expansion_panel_content)).isPresent();
}
} catch (e) {
console.log('---- sidebar navigation catch expandMenu: ', e);
}
}
async openNewMenu() {
const { menu, newButton } = this;
@@ -67,38 +85,40 @@ export class Sidenav extends Component {
await this.menu.clickMenuItem('Create Library');
}
async isActiveByLabel(label: string) {
const className = await this.getLinkByLabel(label).getAttribute('class');
return className.includes(Sidenav.selectors.activeLink.replace('.', ''));
async isActive(name: string) {
const className = await this.getLinkLabel(name).getAttribute('class');
return className.includes(Sidenav.selectors.active);
}
async childIsActiveByLabel(label: string) {
const labelElement = await this.getLinkByLabel(label).element(by.css('span'));
return (await labelElement.getAttribute('class'))
.includes(Sidenav.selectors.activeLink.replace('.', ''));
async childIsActive(name: string) {
const childClass = await this.getLinkLabel(name).element(by.css('span')).getAttribute('class');
return childClass.includes(Sidenav.selectors.active);
}
getLink(label: string) {
return this.component.element(by.cssContainingText(Sidenav.selectors.link, label));
getLink(name: string) {
return this.getLinkLabel(name).element(by.xpath('..'));
}
getLinkByLabel(label: string) {
return this.component.element(by.cssContainingText(Sidenav.selectors.label, label));
// return browser.element(by.xpath(`.//*[.="${label}" and class="${Sidenav.selectors.label}"]`))
getLinkLabel(name: string) {
return this.component.element(by.cssContainingText(Sidenav.selectors.label, name));
}
async getLinkTooltip(label: string) {
return await this.getLink(label).getAttribute('title');
getActiveLink() {
return this.activeLink;
}
async navigateToLinkByLabel(label: string) {
async getLinkTooltip(name: string) {
return await this.getLink(name).getAttribute('title');
}
async navigateToLink(name: string) {
try{
const link = this.getLinkByLabel(label);
const link = this.getLinkLabel(name);
await Utils.waitUntilElementClickable(link);
return await link.click();
} catch (e){
console.log('---- sidebar navigation catch navigateToLinkByLabel: ', e);
console.log('---- sidebar navigation catch navigateToLink: ', e);
}
}
@@ -106,21 +126,8 @@ export class Sidenav extends Component {
return await element(by.cssContainingText('.mat-expanded', SIDEBAR_LABELS.FILE_LIBRARIES)).isPresent();
}
async expandMenu(label: string) {
try{
if (await element(by.cssContainingText('.mat-expanded', label)).isPresent()) {
return Promise.resolve();
} else {
const link = this.getLinkByLabel(label);
await Utils.waitUntilElementClickable(link);
await link.click();
await element(by.css(Sidenav.selectors.expansion_panel_content)).isPresent();
}
} catch (e) {
console.log('---- sidebar navigation catch expandMenu: ', e);
}
async expandFileLibraries() {
return await this.expandMenu(SIDEBAR_LABELS.FILE_LIBRARIES);
}
}