Newer
Older
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { convertToDataTestId } from '../../support/tech-util';
//TODO BenutzerListPage erstellen welche den Button und die Liste enthaelt.
export class BenutzerListE2EComponent {
private readonly headline: string = 'user-list-headline';
private readonly benutzerHinzufuegenButton: string = 'add-user-button';
public getHeadline(): Cypress.Chainable<Element> {
public getList(): Cypress.Chainable<Element> {
return cy.getTestElement(this.list);
public getHinzufuegenButton(): Cypress.Chainable<Element> {
return cy.getTestElement(this.benutzerHinzufuegenButton);
}
public getItem(userName: string): BenutzerListItemE2EComponent {
return new BenutzerListItemE2EComponent(userName);
}
export class BenutzerListItemE2EComponent {
private root: string;
private fullName: string = 'fullname';
private email: string = 'email';
private userName: string = 'username';
private roles: string = 'roles';
private organisationsEinheiten: string = 'organisations-einheiten';
private noOrganisationsEinheitenText: string = 'no-organisations-einheit-text';
constructor(userName: string) {
this.root = convertToDataTestId(userName) + '-user-entry';
public getRoot(): Cypress.Chainable<Element> {
return cy.getTestElement(this.root);
}
public getRoles(): Cypress.Chainable<Element> {
return this.getRoot().getTestElementWithClass(this.roles);
}
public getOrganisationsEinheiten(): Cypress.Chainable<Element> {
return this.getRoot().getTestElementWithClass(this.organisationsEinheiten);
public getNoOrganisationsEinheitText(): Cypress.Chainable<Element> {
return this.getRoot().getTestElementWithClass(this.noOrganisationsEinheitenText);
public getFullName(): Cypress.Chainable<Element> {
return this.getRoot().getTestElementWithClass(this.fullName);
public getEMail(): Cypress.Chainable<Element> {
return this.getRoot().getTestElementWithClass(this.email);
public getUserName(): Cypress.Chainable<Element> {
return this.getRoot().getTestElementWithClass(this.userName);
}
export class BenutzerE2EComponent {
private readonly headline: string = 'benutzer-form-headline';
private readonly userVorname: string = 'Vorname-text-input';
private readonly userNachname: string = 'Nachname-text-input';
private readonly userBenutzername: string = 'Benutzername-text-input';
private readonly userMail: string = 'E-Mail-text-input';
private readonly adminCheckboxLabel: string = 'Admin';
private readonly loeschenCheckboxLabel: string = 'Löschen';
private readonly userCheckboxLabel: string = 'User';
private readonly postCheckboxLabel: string = 'Poststelle';
private readonly datenbeauftragungLabel: string = 'Datenbeauftragung';
private readonly organisationsEinheitCheckboxSuffix: string = '-checkbox-editor';
private readonly saveButton: string = 'save-button';
private readonly deleteButton: string = 'delete-button';
public getHeadline(): Cypress.Chainable<Element> {
return cy.getTestElement(this.headline);
}
public getVornameInput(): Cypress.Chainable<Element> {
return cy.getTestElement(this.userVorname);
public getNachnameInput(): Cypress.Chainable<Element> {
return cy.getTestElement(this.userNachname);
}
public getBenutzernameInput(): Cypress.Chainable<Element> {
return cy.getTestElement(this.userBenutzername);
}
public getMailInput(): Cypress.Chainable<Element> {
return cy.getTestElement(this.userMail);
}
public getAdminCheckbox(): BenutzerCheckboxE2EComponent {
return new BenutzerCheckboxE2EComponent(this.adminCheckboxLabel);
public getLoeschenCheckbox(): BenutzerCheckboxE2EComponent {
return new BenutzerCheckboxE2EComponent(this.loeschenCheckboxLabel);
public getUserCheckbox(): BenutzerCheckboxE2EComponent {
return new BenutzerCheckboxE2EComponent(this.userCheckboxLabel);
public getPostCheckbox(): BenutzerCheckboxE2EComponent {
return new BenutzerCheckboxE2EComponent(this.postCheckboxLabel);
public getDatenbeauftragungCheckbox(): Cypress.Chainable<Element> {
return cy.getTestElement(this.datenbeauftragungLabel);
public getOrganisationsEinheitCheckbox(einheit: string): Cypress.Chainable<Element> {
return cy.getTestElement(einheit + this.organisationsEinheitCheckboxSuffix);
public getSaveButton(): Cypress.Chainable<Element> {
return cy.getTestElement(this.saveButton);
}
public getDeleteButton(): Cypress.Chainable<Element> {
return cy.getTestElement(this.deleteButton);
}
}
export class BenutzerDeleteDialogE2EComponent {
private readonly deleteButton: string = 'dialog-delete';
private readonly cancelButton: string = 'cancel-dialog';
public getCancelButton(): Cypress.Chainable<Element> {
return cy.getTestElement(this.cancelButton);
}
public getDeleteButton(): Cypress.Chainable<Element> {
return cy.getTestElement(this.deleteButton);
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
export class BenutzerCheckboxE2EComponent {
private rootPrefix: string;
private prefix: string;
private readonly adminCheckbox: string = '-checkbox-editor';
private readonly adminInfoButtonSuffix: string = '-role-info-button';
private readonly adminInfoButtonTooltipSuffix: string = '-role-info-button-tooltip';
constructor(label: string) {
this.rootPrefix = convertToDataTestId(label);
this.prefix = convertToDataTestId(label.toLocaleLowerCase());
}
public getRoot(): Cypress.Chainable<Element> {
return cy.getTestElement(`${this.rootPrefix}${this.adminCheckbox}`);
}
public getInfoButton(): Cypress.Chainable<Element> {
return cy.getTestElement(`${this.prefix}${this.adminInfoButtonSuffix}`);
}
public getInfoButtonTooltip(): Cypress.Chainable<Element> {
return cy.getTestElement(`${this.prefix}${this.adminInfoButtonTooltipSuffix}`);
}
}