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); } }