angular4-testing/project-manager/e2e/page-object/task/task-overview.po.ts

71 lines
1.8 KiB
TypeScript

import {AbstractHeaderPage} from "../abstract-header.po";
import {browser, by, element, ElementArrayFinder, ElementFinder, ExpectedConditions} from "protractor";
import {TaskEditPage} from "./task-edit.po";
/**
* PageObject Klasse als Repräösentation der Aufgabenübersichts-Seite
*
* @author FHartwich
*/
export class TaskOverviewPage extends AbstractHeaderPage {
/**
* Button zum Anlegen einer neuen Aufgabe
*/
neueAufgabeBtn: ElementFinder;
/**
* Liste aller Einträge
*/
taskEntries: ElementArrayFinder;
/**
* Konstruktor
*/
constructor() {
super();
super.validatePageHeadline('Aufgaben durchsuchen');
this.neueAufgabeBtn = element(by.linkText('Neue Aufgabe anlegen'));
this.taskEntries = element.all(by.className('task-list-entry'));
}
/**
* Prüft den Wert im Suchfeld
* @param value - erwarteter Wert
*/
validateSearchFieldValue(value: string) {
const inputField = element(by.id('search-tasks'));
expect(inputField.getAttribute('value')).toEqual(value);
}
/**
* Klick auf den Button zum Erstellen einer neuen Aufgabe
* @returns {TaskEditPage}
*/
clickNeueAufgabe(): TaskEditPage {
this.neueAufgabeBtn.click();
return new TaskEditPage(true);
}
/**
* validiert dass ein Task mit gegebenen Titel in der Liste
* vorhanden ist
* @param title - erwarteter Titel
*/
verifyNewTask(title: string) {
const newEntry = element(by.linkText(title));
browser.wait(ExpectedConditions.presenceOf(newEntry));
}
/**
* Klick auf den Link einer Aufgabe mit gegebenen Titel
* @param title - Titel der Aufgabe
* @returns {TaskEditPage}
*/
clickTask(title: string) {
const entry = element(by.linkText(title));
entry.click();
return new TaskEditPage(false);
}
}