diff --git a/alfa-client/apps/admin-e2e/src/components/benutzer/benutzer.e2e.component.ts b/alfa-client/apps/admin-e2e/src/components/benutzer/benutzer.e2e.component.ts index fc463536e86bd567aaafa27810c46ccc51fec355..86924dcfd14a43c360780e32d245e36808ceda1c 100644 --- a/alfa-client/apps/admin-e2e/src/components/benutzer/benutzer.e2e.component.ts +++ b/alfa-client/apps/admin-e2e/src/components/benutzer/benutzer.e2e.component.ts @@ -23,6 +23,7 @@ */ import 'cypress-real-events'; import { convertToDataTestId } from '../../support/tech-util'; +import { TextEditorE2eComponent } from '../ods/text-editor.e2e.component'; //TODO BenutzerListPage erstellen welche den Button und die Liste enthaelt. export class BenutzerListE2EComponent { @@ -95,11 +96,6 @@ export class BenutzerListItemE2EComponent { export class BenutzerE2EComponent { private readonly headline: string = 'benutzer-form-headline'; - private readonly userVorname: string = 'firstName-text-input'; - private readonly userNachname: string = 'lastName-text-input'; - private readonly userBenutzername: string = 'username-text-input'; - private readonly userMail: string = 'email-text-input'; - private readonly adminCheckboxLabel: string = 'Admin'; private readonly loeschenCheckboxLabel: string = 'Löschen'; private readonly userCheckboxLabel: string = 'User'; @@ -111,12 +107,13 @@ export class BenutzerE2EComponent { private readonly saveButton: string = 'save-button'; private readonly deleteButton: string = 'delete-button'; - private readonly firstNameValidationError: string = 'firstName-text-editor-error'; - private readonly lastNameValidationError: string = 'lastName-text-editor-error'; - private readonly usernameValidationError: string = 'username-text-editor-error'; - private readonly emailValidationError: string = 'email-text-editor-error'; private readonly rollenValidationError: string = 'rollen-error'; + private readonly vornameTextFeld: TextEditorE2eComponent = new TextEditorE2eComponent('firstName'); + private readonly nachnameTextFeld: TextEditorE2eComponent = new TextEditorE2eComponent('lastName'); + private readonly benutzernameTextFeld: TextEditorE2eComponent = new TextEditorE2eComponent('username'); + private readonly emailTextFeld: TextEditorE2eComponent = new TextEditorE2eComponent('email'); + public getHeadline(): Cypress.Chainable<Element> { return cy.getTestElement(this.headline); } @@ -126,19 +123,19 @@ export class BenutzerE2EComponent { } public getVornameInput(): Cypress.Chainable<Element> { - return cy.getTestElement(this.userVorname); + return this.vornameTextFeld.getInput(); } public getNachnameInput(): Cypress.Chainable<Element> { - return cy.getTestElement(this.userNachname); + return this.nachnameTextFeld.getInput(); } public getBenutzernameInput(): Cypress.Chainable<Element> { - return cy.getTestElement(this.userBenutzername); + return this.benutzernameTextFeld.getInput(); } public getMailInput(): Cypress.Chainable<Element> { - return cy.getTestElement(this.userMail); + return this.emailTextFeld.getInput(); } public getAdminCheckbox(): BenutzerCheckboxE2EComponent { @@ -173,20 +170,20 @@ export class BenutzerE2EComponent { return cy.getTestElement(this.deleteButton); } - public getFirstNameValidationError(): Cypress.Chainable<Element> { - return cy.getTestElement(this.firstNameValidationError); + public getVornameValidationError(): Cypress.Chainable<Element> { + return this.vornameTextFeld.getErrorMessage(); } - public getLastNameValidationError(): Cypress.Chainable<Element> { - return cy.getTestElement(this.lastNameValidationError); + public getNachnameValidationError(): Cypress.Chainable<Element> { + return this.nachnameTextFeld.getErrorMessage(); } - public getUsernameValidationError(): Cypress.Chainable<Element> { - return cy.getTestElement(this.usernameValidationError); + public getBenutzernameValidationError(): Cypress.Chainable<Element> { + return this.benutzernameTextFeld.getErrorMessage(); } public getEmailValidationError(): Cypress.Chainable<Element> { - return cy.getTestElement(this.emailValidationError); + return this.emailTextFeld.getErrorMessage(); } public getRollenValidationError(): Cypress.Chainable<Element> { diff --git a/alfa-client/apps/admin-e2e/src/components/ods/text-editor.e2e.component.ts b/alfa-client/apps/admin-e2e/src/components/ods/text-editor.e2e.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..d3fede9efe9d2226fee2edf040771f17c97fcb3a --- /dev/null +++ b/alfa-client/apps/admin-e2e/src/components/ods/text-editor.e2e.component.ts @@ -0,0 +1,17 @@ +export class TextEditorE2eComponent { + private readonly root: string; + private readonly validationError: string; + + constructor(root: string) { + this.root = `${root}-text-editor`; + this.validationError = `${root}-text-editor-error`; + } + + public getInput(): Cypress.Chainable<Element> { + return cy.getTestElement(this.root); + } + + public getErrorMessage(): Cypress.Chainable<Element> { + return cy.getTestElement(this.validationError); + } +} diff --git a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.helper.ts b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.helper.ts index 1a8deaf8db71fcc7425877c5aa95ad4edfe487f0..72ef2c819e22a7e8fec59378793fed4145a80107 100644 --- a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.helper.ts +++ b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.helper.ts @@ -1,5 +1,6 @@ import { OrganisationsEinheitE2E } from '../../model/organisations-einheit'; import { AdminUserE2E } from '../../model/util'; +import { waitForSpinnerToDisappear } from '../../page-objects/main.po'; import { E2EBenutzerExecutor } from './benutzer.executor'; import { E2EBenutzerNavigator } from './benutzer.navigator'; @@ -72,11 +73,13 @@ export class E2EBenutzerHelper { public saveBenutzer(): void { this.executer.saveBenutzer(); + waitForSpinnerToDisappear(); } public deleteBenutzer(userName: string): void { this.openBenutzerPage(userName); this.executer.deleteBenutzer(); + waitForSpinnerToDisappear(); } public openBenutzerPage(userName: string): void { diff --git a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.verifier.ts b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.verifier.ts index afd3f0539ac3404ba1b456c36bd5ffe73dc6fab8..0b12ee86799ba8def648795404a68fdab47775ff 100644 --- a/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.verifier.ts +++ b/alfa-client/apps/admin-e2e/src/helper/benutzer/benutzer.verifier.ts @@ -1,3 +1,4 @@ +import { EMPTY_STRING } from '@alfa-client/tech-shared'; import { BenutzerE2EComponent, BenutzerListE2EComponent, @@ -5,7 +6,7 @@ import { } from '../../components/benutzer/benutzer.e2e.component'; import { BenutzerValidationMessages } from '../../model/benutzer.messages'; import { AdminUserE2E } from '../../model/util'; -import { contains, exist, notBeEnabled, notContains, notExist } from '../../support/cypress.util'; +import { contains, exist, haveText, notBeEnabled, notContains, notExist } from '../../support/cypress.util'; import { AlfaRollen } from '../../support/user-util'; export class E2EBenutzerVerifier { @@ -70,33 +71,33 @@ export class E2EBenutzerVerifier { } public verifyMissingVornameError(): void { - exist(this.benutzerPage.getFirstNameValidationError()); - contains(this.benutzerPage.getFirstNameValidationError(), BenutzerValidationMessages.VORNAME_EMPTY_ERROR); + exist(this.benutzerPage.getVornameValidationError()); + haveText(this.benutzerPage.getVornameValidationError(), BenutzerValidationMessages.VORNAME_EMPTY_ERROR); } public verifyLastNameError(): void { - exist(this.benutzerPage.getLastNameValidationError()); - contains(this.benutzerPage.getLastNameValidationError(), BenutzerValidationMessages.NACHNAME_EMPTY_ERROR); + exist(this.benutzerPage.getNachnameValidationError()); + haveText(this.benutzerPage.getNachnameValidationError(), BenutzerValidationMessages.NACHNAME_EMPTY_ERROR); } public verifyUsernameSizeError(): void { - exist(this.benutzerPage.getUsernameValidationError()); - contains(this.benutzerPage.getUsernameValidationError(), BenutzerValidationMessages.BENUTZERNAME_SIZE_ERROR); + exist(this.benutzerPage.getBenutzernameValidationError()); + haveText(this.benutzerPage.getBenutzernameValidationError(), BenutzerValidationMessages.BENUTZERNAME_SIZE_ERROR); } public verifyUserExistsError(): void { - exist(this.benutzerPage.getUsernameValidationError()); - contains(this.benutzerPage.getUsernameValidationError(), BenutzerValidationMessages.BENUTZER_NAME_EXISTS); + exist(this.benutzerPage.getBenutzernameValidationError()); + haveText(this.benutzerPage.getBenutzernameValidationError(), BenutzerValidationMessages.BENUTZER_NAME_EXISTS); } public verifyEmailInvalidError(): void { exist(this.benutzerPage.getEmailValidationError()); - contains(this.benutzerPage.getEmailValidationError(), BenutzerValidationMessages.EMAIL_INVALID_ERROR); + haveText(this.benutzerPage.getEmailValidationError(), BenutzerValidationMessages.EMAIL_INVALID_ERROR); } public verifyEmailExistsError(): void { exist(this.benutzerPage.getEmailValidationError()); - contains(this.benutzerPage.getEmailValidationError(), BenutzerValidationMessages.EMAIL_EXISTS); + haveText(this.benutzerPage.getEmailValidationError(), BenutzerValidationMessages.EMAIL_EXISTS); } public verifyRollenError(): void { @@ -105,19 +106,19 @@ export class E2EBenutzerVerifier { } public verifyNoFirstNameValidationError(): void { - notContains(this.benutzerPage.getFirstNameValidationError(), BenutzerValidationMessages.VORNAME_EMPTY_ERROR); + haveText(this.benutzerPage.getVornameValidationError(), EMPTY_STRING); } public verifyNoLastNameValidationError(): void { - notContains(this.benutzerPage.getLastNameValidationError(), BenutzerValidationMessages.NACHNAME_EMPTY_ERROR); + haveText(this.benutzerPage.getNachnameValidationError(), EMPTY_STRING); } public verifyNoUsernameSizeValidationError(): void { - notContains(this.benutzerPage.getUsernameValidationError(), BenutzerValidationMessages.BENUTZERNAME_SIZE_ERROR); + haveText(this.benutzerPage.getBenutzernameValidationError(), EMPTY_STRING); } public verifyNoEmailInvalidValidationError(): void { - notContains(this.benutzerPage.getEmailValidationError(), BenutzerValidationMessages.EMAIL_INVALID_ERROR); + haveText(this.benutzerPage.getEmailValidationError(), EMPTY_STRING); } public verifyNoRollenValidationError(): void {