71 lines
1.8 KiB
TypeScript
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);
|
|
}
|
|
}
|