134 lines
3.1 KiB
TypeScript
134 lines
3.1 KiB
TypeScript
import {AbstractHeaderPage} from "../abstract-header.po";
|
|
import {by, element} from "protractor";
|
|
import {TaskOverviewPage} from "./task-overview.po";
|
|
|
|
/**
|
|
* PageObject Klasse, repräsentiert die Formularseite zum
|
|
* editieren und Erstellen von Aufgaben
|
|
*
|
|
* @author FHartwich
|
|
*/
|
|
export class TaskEditPage extends AbstractHeaderPage {
|
|
|
|
/**
|
|
* Array mit möglichen Fehleranzeigen
|
|
* @type {{title: string; email: string}}
|
|
*/
|
|
errorMessages = {title: 'Titel muss mindestens 5 Zeichen enthalten',
|
|
email : 'Bitte geben Sie eine gültige E-Mail Adresse an'};
|
|
|
|
/**
|
|
* Eingabefeld - Titel
|
|
* @type {ElementFinder}
|
|
*/
|
|
titleInput = element(by.id('title'));
|
|
|
|
/**
|
|
* Eingabefeld - Beschreibung
|
|
* @type {ElementFinder}
|
|
*/
|
|
descriptionInput = element(by.id('description'));
|
|
|
|
/**
|
|
* Eingabefeld - Verantwortlicher, eMail
|
|
* @type {ElementFinder}
|
|
*/
|
|
assigneeEmail = element(by.id('assignee_email'));
|
|
|
|
/**
|
|
* Speichern - Button
|
|
* @type {ElementFinder}
|
|
*/
|
|
saveButton = element(by.id('save'));
|
|
|
|
/**
|
|
* Abbrechen - Button
|
|
* @type {ElementFinder}
|
|
*/
|
|
cancelButton = element(by.id('cancel'));
|
|
|
|
|
|
/**
|
|
* Konstruktor
|
|
* @param newTask - true, wenn die Seite für einen neuen Tasks geöffnet wird
|
|
* false, wenn ein Task editiert wird
|
|
*/
|
|
constructor(newTask: boolean) {
|
|
super();
|
|
let headline;
|
|
if (newTask) {
|
|
headline = 'Neue Aufgabe anlegen';
|
|
} else {
|
|
headline = 'Aufgabe bearbeiten';
|
|
}
|
|
super.validatePageHeadline(headline)
|
|
}
|
|
|
|
/**
|
|
* Löscht alten Titel und gibt neuen ein
|
|
* @param title - neuer Titel
|
|
*/
|
|
clearEnterTitle(title: string) {
|
|
this.titleInput.clear();
|
|
this.titleInput.sendKeys(title);
|
|
}
|
|
|
|
/**
|
|
* Löscht alte Beschreibung und gibt neue ein
|
|
* @param description - neue Beschreibung
|
|
*/
|
|
clearEnterDescription(description: string) {
|
|
this.descriptionInput.clear();
|
|
this.descriptionInput.sendKeys(description);
|
|
}
|
|
|
|
/**
|
|
* Löscht alte Assignee eMail und trägt neue ein
|
|
* @param email - neue eMail Adresse
|
|
*/
|
|
clearInsertEmail(email: string) {
|
|
this.assigneeEmail.clear();
|
|
this.assigneeEmail.sendKeys(email);
|
|
}
|
|
|
|
/**
|
|
* Klick auf den Button zum absenden des Formulars
|
|
* @returns {TaskOverviewPage}
|
|
*/
|
|
submitTaskForm() {
|
|
this.saveButton.click();
|
|
return new TaskOverviewPage;
|
|
}
|
|
|
|
/**
|
|
* Klick auf den Button zum Abbrechen der Formulareingabe
|
|
* @returns {TaskOverviewPage}
|
|
*/
|
|
cancelSubmitTask() : TaskOverviewPage {
|
|
this.cancelButton.click();
|
|
return new TaskOverviewPage();
|
|
}
|
|
|
|
/**
|
|
* überprüft den Feldwert des über die ID beschriebenen Elements
|
|
* @param elementId - CSS ID des Testfeldes
|
|
* @param value - erwarteter Wert
|
|
*/
|
|
static validateInput(elementId: string, value: string) {
|
|
const input = element(by.id(elementId));
|
|
expect(input.getAttribute('value')).toBe(value);
|
|
}
|
|
|
|
/**
|
|
* prüft ob ein Error existiert der diesen Wert hat
|
|
* @param input - erwartete Fehlermeldung
|
|
*/
|
|
validateError(input: string) {
|
|
expect(element(by.className('alert')).getText())
|
|
.toBe(this.errorMessages[input]);
|
|
}
|
|
|
|
|
|
|
|
}
|