diff --git a/alfa-client/apps/alfa-e2e/src/components/attachment/attachment.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/attachment/attachment.e2e.component.ts index 7e7207e39038dfd923b4b1560bdda6864496a0f2..dbcb98b4dc2a1a77eb110910dd711bf5b9e40dff 100644 --- a/alfa-client/apps/alfa-e2e/src/components/attachment/attachment.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/attachment/attachment.e2e.component.ts @@ -24,46 +24,45 @@ import { convertToDataTestId } from '../../support/tech.util'; export class AttachmentContainerE2EComponent { - private readonly locatorFileUploadInput: string = '-file-upload-input'; + private readonly multiUploadInput: string = 'multi-file-upload-button'; + private readonly attachmentList: AttachmentListE2EComponent = new AttachmentListE2EComponent(); public getList(): AttachmentListE2EComponent { return this.attachmentList; } - public getUploadInput() { - return cy.getTestElementContaining(this.locatorFileUploadInput); + //TODO Rename getMultiUploadButton + public getUploadInput(): Cypress.Chainable<HTMLElement> { + return cy.getTestElement(this.multiUploadInput); } } export class AttachmentListE2EComponent { private readonly locatorRoot: string = 'file-list'; - private readonly downloadAttachmentsButton: string = 'download-archive-file-button'; - public getRoot() { - return cy.getTestElement(this.locatorRoot); - } + private readonly downloadArchiveButton: string = 'download-archive-file-button'; - public getItem(fileName: string): AttachmentE2EItem { - return new AttachmentE2EItem(fileName); + public getRoot(): Cypress.Chainable<HTMLElement> { + return cy.getTestElement(this.locatorRoot); } - public getLoadingOrErrorItem(fileName: string): LoadingErrorAttachmentE2EItem { - return new LoadingErrorAttachmentE2EItem(fileName); + public getItem(fileName: string): AttachmentListItemE2EComponent { + return new AttachmentListItemE2EComponent(fileName); } - public getDownloadAttachmentsButton(): Cypress.Chainable<JQuery<HTMLElement>> { - return this.getRoot().findTestElementWithClass(this.downloadAttachmentsButton); + public getLoadingOrErrorItem(fileName: string): LoadingErrorAttachmentListeItemE2EComponent { + return new LoadingErrorAttachmentListeItemE2EComponent(fileName); } - public downloadAttachments(): Cypress.Chainable<any> { - return this.getDownloadAttachmentsButton().click(); + public getDownloadArchiveButton(): Cypress.Chainable<HTMLElement> { + return this.getRoot().getTestElement(this.downloadArchiveButton); } } -class AttachmentE2EItem { - private readonly locatorDeleteButton: string = 'delete-file-button'; - private readonly locatorDownloadButton: string = 'download-file-button'; +export class AttachmentListItemE2EComponent { + private readonly deleteButton: string = 'delete-file-button'; + private readonly downloadButton: string = 'download-file-button'; private locatorRoot: string; @@ -71,20 +70,20 @@ class AttachmentE2EItem { this.locatorRoot = convertToDataTestId(this.fileName) + '-file-item'; } - public getRoot() { + public getRoot(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.locatorRoot); } - public getDeleteButton() { - return this.getRoot().findTestElementWithClass(this.locatorDeleteButton); + public getDeleteButton(): Cypress.Chainable<HTMLElement> { + return this.getRoot().findTestElementWithClass(this.deleteButton); } - public getDownloadButton() { - return this.getRoot().findTestElementWithClass(this.locatorDownloadButton); + public getDownloadButton(): Cypress.Chainable<HTMLElement> { + return this.getRoot().findTestElementWithClass(this.downloadButton); } } -class LoadingErrorAttachmentE2EItem { +export class LoadingErrorAttachmentListeItemE2EComponent { private readonly root: string; private readonly attachmentSuffix: string = '-file-upload-list-item-attachment-upload'; @@ -92,7 +91,7 @@ class LoadingErrorAttachmentE2EItem { this.root = convertToDataTestId(this.fileName) + this.attachmentSuffix; } - public getRoot() { + public getRoot(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.root); } } diff --git a/alfa-client/apps/alfa-e2e/src/components/kommentar/kommentar-list.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/kommentar/kommentar-list.e2e.component.ts index 42e791b9899b0348637184324cfcf91f0ef5d60b..09cebe8b80f722d1869036d55767e47104031728 100644 --- a/alfa-client/apps/alfa-e2e/src/components/kommentar/kommentar-list.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/kommentar/kommentar-list.e2e.component.ts @@ -25,54 +25,60 @@ import { convertToDataTestId } from '../../support/tech.util'; import { AttachmentContainerE2EComponent } from '../attachment/attachment.e2e.component'; import { UserProfileE2EComponent } from '../user-profile/user-profile.component.e2e'; -export class KommentareInVorgangE2EComponent { - readonly locatorHinzufuegenButton: string = 'create-kommentar'; - readonly locatorFormular: string = 'kommentar-formular'; - readonly locatorFormularSpeichernButton: string = 'add-button'; - readonly locatorFormularAbbrechenButton: string = 'cancel-button'; - readonly locatorKommentarList: string = 'kommentar-list-in-vorgang'; - readonly locatorTextInput: string = 'Kommentar-textarea-input'; - readonly locatorTextError: string = 'Kommentar-textarea-error'; - - private readonly attachmentContainer: AttachmentContainerE2EComponent = - new AttachmentContainerE2EComponent(); - - readonly locatorRoot: string = 'kommentar-container-in-vorgang'; - - public getRoot() { - return cy.getTestElement(this.locatorRoot); +export class KommentarListInVorgangE2EComponent { + readonly hinzufuegenButton: string = 'create-kommentar'; + + readonly root: string = 'kommentar-container-in-vorgang'; + + readonly kommentarList: string = 'kommentar-list-in-vorgang'; + + readonly formular: string = 'kommentar-formular'; + readonly formularItem: string = 'kommentar-list-item-form'; + readonly formularSpeichernButton: string = 'add-button'; + readonly formularAbbrechenButton: string = 'cancel-button'; + readonly textInput: string = 'Kommentar-textarea-input'; + readonly textError: string = 'Kommentar-textarea-error'; + + private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent(); + + public getRoot(): Cypress.Chainable<Element> { + return cy.getTestElement(this.root); + } + + public getFormular(): Cypress.Chainable<Element> { + return cy.getTestElement(this.formular); } - public getFormular() { - return cy.getTestElement(this.locatorFormular); + public getFormulare(): Cypress.Chainable<Element[]> { + return cy.getTestElement(this.formularItem); } - public getHinzufuegenButton() { - return cy.getTestElement(this.locatorHinzufuegenButton); + public getHinzufuegenButton(): Cypress.Chainable<Element> { + return cy.getTestElement(this.hinzufuegenButton); } - public getFormularSpeichernButton() { - return cy.getTestElement(this.locatorFormularSpeichernButton); + public getFormularSpeichernButton(): Cypress.Chainable<Element> { + return cy.getTestElement(this.formularSpeichernButton); } - public getFormularAbbrechenButton() { - return cy.getTestElement(this.locatorFormularAbbrechenButton); + public getFormularAbbrechenButton(): Cypress.Chainable<Element> { + return cy.getTestElement(this.formularAbbrechenButton); } - public getKommentarList() { - return cy.getTestElement(this.locatorKommentarList); + public getKommentarList(): Cypress.Chainable<Element> { + return cy.getTestElement(this.kommentarList); } - public getTextInput() { - return cy.getTestElement(this.locatorTextInput); + public getTextInput(): Cypress.Chainable<Element> { + return cy.getTestElement(this.textInput); } - public getTextError() { - return cy.getTestElement(this.locatorTextError); + public getTextError(): Cypress.Chainable<Element> { + return cy.getTestElement(this.textError); } - public getKommentar(text: string): KommentarInVorgangE2E { - return new KommentarInVorgangE2E(text); + public getKommentar(text: string): KommentarInVorgangE2EComponent { + return new KommentarInVorgangE2EComponent(text); } public getAttachmentContainer(): AttachmentContainerE2EComponent { @@ -80,26 +86,24 @@ export class KommentareInVorgangE2EComponent { } } -export class KommentarInVorgangE2E { - //TODO: Rename to KommentarInVorgangE2EComponent - - private readonly locatorCreatedAt: string = 'kommentar-created-at'; +export class KommentarInVorgangE2EComponent { + private readonly root: string; - private readonly locatorRoot: string; + private readonly createdAtInput: string = 'kommentar-created-at'; constructor(private text: string) { - this.locatorRoot = 'kommentar-item-' + convertToDataTestId(this.text); + this.root = 'kommentar-item-' + convertToDataTestId(this.text); } - public getRoot() { - return cy.getTestElement(this.locatorRoot); + public getRoot(): Cypress.Chainable<Element> { + return cy.getTestElement(this.root); } public getUserProfile(): UserProfileE2EComponent { - return new UserProfileE2EComponent(this.locatorRoot); + return new UserProfileE2EComponent(this.root); } - public getCreatedAt() { - return cy.getTestElement(this.locatorCreatedAt); + public getCreatedAt(): Cypress.Chainable<Element> { + return this.getRoot().findTestElementWithClass(this.createdAtInput); } } diff --git a/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail-formular.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail-formular.e2e.component.ts index fc4edd22fe768eb8be089b6142314fc6d0227e1c..c1348e724905b5cb8bc0daa0b8a02521cd9b23d9 100644 --- a/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail-formular.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail-formular.e2e.component.ts @@ -25,43 +25,42 @@ import { getTestElement } from '../../support/cypress-helper'; import { AttachmentContainerE2EComponent } from '../attachment/attachment.e2e.component'; export class PostfachMailFormularE2EComponent { - private readonly locatorEmpfaenger: string = 'postfach-empfaenger'; - private readonly locatorBetreff: string = 'Betreff-text-input'; - private readonly locatorBetreffError: string = 'Betreff-text-error'; - private readonly locatorText: string = 'Text-textarea-input'; - private readonly locatorTextError: string = 'Text-textarea-error'; - private readonly locatorSendButton: string = 'postfach-send-button'; + private readonly empfaenger: string = 'postfach-empfaenger'; + private readonly betreffInput: string = 'Betreff-text-input'; + private readonly betreffError: string = 'Betreff-text-error'; + private readonly textInput: string = 'Text-textarea-input'; + private readonly textError: string = 'Text-textarea-error'; + private readonly replyOptionCheckbox: string = 'postfach-reply-option'; + private readonly sendButton: string = 'postfach-send-button'; - private readonly replyOption: string = 'postfach-reply-option'; - private readonly attachmentContainer: AttachmentContainerE2EComponent = - new AttachmentContainerE2EComponent(); + private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent(); - public getEmpfaenger() { - return cy.getTestElement(this.locatorEmpfaenger); + public getEmpfaenger(): Cypress.Chainable<HTMLElement> { + return cy.getTestElement(this.empfaenger); } - public getBetreff() { - return cy.getTestElement(this.locatorBetreff); + public getBetreff(): Cypress.Chainable<HTMLElement> { + return cy.getTestElement(this.betreffInput); } - public getBetreffError() { - return cy.getTestElement(this.locatorBetreffError); + public getBetreffError(): Cypress.Chainable<HTMLElement> { + return cy.getTestElement(this.betreffError); } - public getText() { - return cy.getTestElement(this.locatorText); + public getText(): Cypress.Chainable<HTMLElement> { + return cy.getTestElement(this.textInput); } - public getTextError() { - return cy.getTestElement(this.locatorTextError); + public getTextError(): Cypress.Chainable<HTMLElement> { + return cy.getTestElement(this.textError); } - public getSendButton() { - return cy.getTestElement(this.locatorSendButton); + public getSendButton(): Cypress.Chainable<HTMLElement> { + return cy.getTestElement(this.sendButton); } - public getReplyOption() { - return getTestElement(this.replyOption).find('.mdc-checkbox__native-control'); + public getReplyOption(): Cypress.Chainable<HTMLElement> { + return getTestElement(this.replyOptionCheckbox).find('.mdc-checkbox__native-control'); } public getAttachmentContainer(): AttachmentContainerE2EComponent { diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-bescheid-wizard.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-bescheid-wizard.e2e.component.ts index 057b39b29c7de8819c69e745af44cda24e300859..4b1e36d8940baf9c31b74c0db1496400ff3f3a16 100644 --- a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-bescheid-wizard.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-bescheid-wizard.e2e.component.ts @@ -49,7 +49,6 @@ export class VorgangBescheidWizardE2EComponent { private readonly uploadBescheidFileButton: string = '-single-file-upload-button'; private readonly uploadAttachmentButton: string = 'Anhang_hochladen-file-upload-button'; private readonly uploadAutomaticBescheid: string = 'create-bescheid-document-button'; - private readonly mailTextArea: string = 'Text-textarea-editor'; private readonly saveBescheid: string = 'save-button'; private readonly sendBescheid: string = 'send-button'; private readonly confirmAndSaveButton: string = 'confirm-and-save-button'; @@ -63,10 +62,6 @@ export class VorgangBescheidWizardE2EComponent { private readonly bescheidDocument: string = 'bescheid-document'; private readonly attachmentDocument: string = 'bescheid-attachments'; - private readonly bescheidUploadSpinner: string = '[data-test-id="bescheid-document"] ods-spinner-icon'; - private readonly attachmentUploadSpinner: string = '[data-test-id="bescheid-attachments"] ods-spinner-icon'; - private readonly bescheidSaveSpinner: string = '[data-test-id="confirm-and-save-button"] ods-spinner-icon'; - private readonly sendenSpinner: string = '[data-test-id="send-button"] ods-spinner-icon'; private readonly missingBescheidDocumentMessage: string = 'missing-bescheid-document-error-message'; private locatorRoot: string = 'bescheid-wizard'; @@ -142,35 +137,35 @@ export class VorgangBescheidWizardE2EComponent { return cy.getTestElement(this.closeDialog); } - public getCloseVerwerfenButton(): Cypress.Chainable<JQuery<HTMLElement>> { + public getCloseVerwerfenButton(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.bescheidVerwerfenButton); } - public getCloseSpeichernButton(): Cypress.Chainable<JQuery<HTMLElement>> { + public getCloseSpeichernButton(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.bescheidSpeichernButton); } - public getUploadBescheidButton(): Cypress.Chainable<JQuery<HTMLElement>> { + public getUploadBescheidButton(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.uploadBescheidFileButton); } - public getUploadAttachmentButton(): Cypress.Chainable<JQuery<HTMLElement>> { + public getUploadAttachmentButton(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.uploadAttachmentButton); } - public getFileBescheidValidInWizard(): Cypress.Chainable<JQuery<HTMLElement>> { + public getFileBescheidValidInWizard(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.locatorRoot).find(`[data-test-id=${this.fileBescheidValid}]`); } - public getFileAnhangValidInWizard(): Cypress.Chainable<JQuery<HTMLElement>> { + public getFileAnhangValidInWizard(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.locatorRoot).find(`[data-test-id=${this.fileAnhangValid}]`); } - public getAutomaticBescheidFileInWizard() { + public getAutomaticBescheidFileInWizard(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.locatorRoot).find(`[data-test-id=${this.fileAutomaticBescheid}]`); } - public getDeleteButtonOfElement(element: string): Cypress.Chainable<JQuery<HTMLElement>> { + public getDeleteButtonOfElement(element: string): Cypress.Chainable<HTMLElement> { return cy.getTestElement(element).find('[title="Anhang löschen"]'); } @@ -178,30 +173,14 @@ export class VorgangBescheidWizardE2EComponent { return filename.replace(/\./g, '') + '-file-item'; } - public getBescheidDocument(): Cypress.Chainable<JQuery<HTMLElement>> { + public getBescheidDocument(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.bescheidDocument); } - public getAttachmentDocument(): Cypress.Chainable<JQuery<HTMLElement>> { + public getAttachmentDocument(): Cypress.Chainable<HTMLElement> { return cy.getTestElement(this.attachmentDocument); } - public getBescheidUploadSpinner(): Cypress.Chainable<JQuery<HTMLElement>> { - return cy.get(this.bescheidUploadSpinner); - } - - public getAttachmentUploadSpinner(): Cypress.Chainable<JQuery<HTMLElement>> { - return cy.get(this.attachmentUploadSpinner); - } - - public getBescheidSaveSpinner(): Cypress.Chainable<JQuery<HTMLElement>> { - return cy.get(this.bescheidSaveSpinner); - } - - public getSendenSpinner(): Cypress.Chainable<JQuery<HTMLElement>> { - return cy.get(this.sendenSpinner); - } - public getMailText(): Cypress.Chainable<JQuery<HTMLElement>> { return cy.getTestElement(this.nachrichtText); } @@ -274,14 +253,6 @@ export class VorgangBescheidWizardE2EComponent { uploadFile(this.getUploadAttachmentButton(), fileName); } - public bescheidUploadSpinnerIsClosed(): void { - this.getBescheidUploadSpinner().should('not.exist'); - } - - public attachmentSpinnerIsClosed(): void { - this.getAttachmentUploadSpinner().should('not.exist'); - } - public enterDate(difference: number): void { this.getDateInput().should('exist'); enterWith(this.getDateInput(), getAdjustedDateGerman(difference)); diff --git a/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-in-vorgang.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-in-vorgang.e2e.component.ts index 36b36d076f83254d26bdaa6babef3975300ebedd..753fe1f790e2f4cdcfc140f93ae23681764b3736 100644 --- a/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-in-vorgang.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-in-vorgang.e2e.component.ts @@ -26,38 +26,37 @@ import { AttachmentContainerE2EComponent } from '../attachment/attachment.e2e.co import { StatusE2EComponent } from './wiedervorlage-status.e2e.component'; export class WiedervorlageInVorgangE2EComponent { - private readonly locatorFrist: string = 'frist'; - private readonly locatorBetreff: string = 'betreff'; - private readonly locatorLink: string = 'link'; - private readonly locatorExpandButon: string = 'expand-button'; - private readonly locatorExpandable: string = 'expandable'; - private readonly attachmentContainer: AttachmentContainerE2EComponent = - new AttachmentContainerE2EComponent(); + private readonly frist: string = 'frist'; + private readonly betreff: string = 'betreff'; + private readonly link: string = 'link'; + private readonly expandButton: string = 'expand-button'; + private readonly expandable: string = 'expandable'; + private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent(); private locatorRoot: string; - constructor(private betreff: string) { - this.locatorRoot = replaceAllWhitespaces(this.betreff, '_'); + constructor(private betreffIdentificator: string) { + this.locatorRoot = replaceAllWhitespaces(this.betreffIdentificator, '_'); } - public getRoot() { + public getRoot(): Cypress.Chainable<Element> { return cy.getTestElement(this.locatorRoot); } - public getLink() { - return this.getRoot().findTestElementWithClass(this.locatorLink); + public getLink(): Cypress.Chainable<Element> { + return this.getRoot().findTestElementWithClass(this.link); } - public getFrist() { - return this.getRoot().findTestElementWithClass(this.locatorFrist); + public getFrist(): Cypress.Chainable<Element> { + return this.getRoot().findTestElementWithClass(this.frist); } - public getBetreff() { - return this.getRoot().findTestElementWithClass(this.locatorBetreff); + public getBetreff(): Cypress.Chainable<Element> { + return this.getRoot().findTestElementWithClass(this.betreff); } - public getExpandButton() { - return this.getRoot().findTestElementWithClass(this.locatorExpandButon); + public getExpandButton(): Cypress.Chainable<Element> { + return this.getRoot().findTestElementWithClass(this.expandButton); } public getStatus(): StatusE2EComponent { @@ -68,8 +67,8 @@ export class WiedervorlageInVorgangE2EComponent { this.getExpandButton().click(); } - public getExpandable() { - return this.getRoot().findTestElementWithClass(this.locatorExpandable); + public getExpandable(): Cypress.Chainable<Element> { + return this.getRoot().findTestElementWithClass(this.expandable); } public getAttachmentContainer(): AttachmentContainerE2EComponent { diff --git a/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-page.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-page.e2e.component.ts index e17043afdfaa7c7de564ec7b244ff85b1761985a..a647445a85ed68f65dccd37e8f1416dd0c03c396 100644 --- a/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-page.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-page.e2e.component.ts @@ -34,31 +34,31 @@ export class WiedervorlageE2EComponent { private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent(); - public getBetreff() { + public getBetreff(): Cypress.Chainable<Element> { return cy.getTestElement(this.locatorBetreffInput); } - public getBetreffError() { + public getBetreffError(): Cypress.Chainable<Element> { return cy.getTestElement(this.locatorBetreffError); } - public getBeschreibung() { + public getBeschreibung(): Cypress.Chainable<Element> { return cy.getTestElement(this.locatorBeschreibungInput); } - public getFrist() { + public getFrist(): Cypress.Chainable<Element> { return cy.getTestElement(this.locatorFristInput); } - public getDatumError() { + public getDatumError(): Cypress.Chainable<Element> { return cy.getTestElement(this.locatorDatumError); } - public getStatusDot() { + public getStatusDot(): Cypress.Chainable<Element> { return cy.getTestElementWithClass(this.locatorStatusDot); } - public getSpeichernButton() { + public getSpeichernButton(): Cypress.Chainable<Element> { return cy.getTestElement(this.locatorSpeichernButton); } diff --git a/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component.ts index 91718623842de6e64bb8c0a863ba2146606d68c4..0f5d46f7ab8f257fc75e3f6a1bcd9d3cfd80da56 100644 --- a/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component.ts @@ -24,18 +24,18 @@ import { WiedervorlageInVorgangE2EComponent } from './wiedervorlage-in-vorgang.e2e.component'; export class WiedervorlagenInVorgangE2EComponent { - private readonly locatorCreateWiedervorlageButton: string = 'create-wiedervorlage'; - private readonly locatorRoot: string = 'wiedervorlagen-in-vorgang'; + private readonly createWiedervorlageButton: string = 'create-wiedervorlage'; + private readonly root: string = 'wiedervorlagen-in-vorgang'; - public getRoot() { - return cy.getTestElement(this.locatorRoot); + public getRoot(): Cypress.Chainable<Element> { + return cy.getTestElement(this.root); } public getWiedervorlage(betreff: string): WiedervorlageInVorgangE2EComponent { return new WiedervorlageInVorgangE2EComponent(betreff); } - public getCreateWiedervorlageButton() { - return cy.getTestElement(this.locatorCreateWiedervorlageButton); + public getCreateWiedervorlageButton(): Cypress.Chainable<Element> { + return cy.getTestElement(this.createWiedervorlageButton); } } diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/kommentar-attachment/kommentar-attachment.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/kommentar-attachment/kommentar-attachment.cy.ts index e3d96d18276ee39862dd14f25d9a0ed02169b812..8cddad300e40d3cb4c4cca590d69f30845a5314f 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/kommentar-attachment/kommentar-attachment.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/kommentar-attachment/kommentar-attachment.cy.ts @@ -22,18 +22,20 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { sleep } from '@alfa-client/tech-shared'; -import { AttachmentContainerE2EComponent, AttachmentListE2EComponent, } from '../../../components/attachment/attachment.e2e.component'; -import { KommentareInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component'; +import { + AttachmentContainerE2EComponent, + AttachmentListE2EComponent, +} from '../../../components/attachment/attachment.e2e.component'; +import { KommentarListInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component'; import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; -import { UserE2E } from '../../../model/user'; import { VorgangE2E } from '../../../model/vorgang'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { VorgangPage } from '../../../page-objects/vorgang.po'; import { dropCollections, readFileFromDownloads } from '../../../support/cypress-helper'; import { exist, notExist } from '../../../support/cypress.util'; import { TEST_FILE_WITH_CONTENT, TEST_FILE_WITHOUT_CONTENT } from '../../../support/data.util'; -import { uploadFile } from '../../../support/file-upload'; -import { getUserSabine, loginAsSabine } from '../../../support/user-util'; +import { uploadFile, uploadFiles } from '../../../support/file-upload'; +import { loginAsSabine } from '../../../support/user-util'; import { createVorgang, initVorgang } from '../../../support/vorgang-util'; describe('Kommentar attachments', () => { @@ -41,7 +43,7 @@ describe('Kommentar attachments', () => { const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); const vorgangPage: VorgangPage = new VorgangPage(); - const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer(); + const kommentarContainer: KommentarListInVorgangE2EComponent = vorgangPage.getKommentarContainer(); const attachmentContainer: AttachmentContainerE2EComponent = kommentarContainer.getAttachmentContainer(); const attachmentList: AttachmentListE2EComponent = attachmentContainer.getList(); @@ -49,7 +51,6 @@ describe('Kommentar attachments', () => { const kommentarText: string = 'Test text to test the test text test'; const vorgang: VorgangE2E = createVorgang(); - const userSabine: UserE2E = getUserSabine(); before(() => { initVorgang(vorgang); @@ -124,20 +125,22 @@ describe('Kommentar attachments', () => { }); }); - describe('Download Kommentar attachments', () => { - it('should upload attachment', () => { + describe('upload multiple attachments', () => { + it('should show files after upload is done', () => { kommentarContainer.getKommentar(kommentarText).getRoot().click(); waitForSpinnerToDisappear(); - uploadFile(attachmentContainer.getUploadInput(), TEST_FILE_WITH_CONTENT); + uploadFiles(attachmentContainer.getUploadInput(), [TEST_FILE_WITH_CONTENT, TEST_FILE_WITHOUT_CONTENT]); waitForSpinnerToDisappear(); - kommentarContainer.getFormularSpeichernButton().click(); waitForSpinnerToDisappear(); exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + exist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); }); + }); + describe('Download Kommentar attachments', () => { it('should download uploaded attachment', () => { sleep(1000); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/kommentar/kommentar.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/kommentar/kommentar.cy.ts index 23754b15795ba5f5ed020b7dd450dad2a2d14fe3..002476fc9fbca92bc87ef43cf52f794266c3c45c 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/kommentar/kommentar.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/kommentar/kommentar.cy.ts @@ -21,13 +21,13 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { KommentareInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component'; +import { KommentarListInVorgangE2EComponent } from '../../../components/kommentar/kommentar-list.e2e.component'; import { UserE2E } from '../../../model/user'; import { VorgangE2E } from '../../../model/vorgang'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { VorgangPage } from '../../../page-objects/vorgang.po'; import { dropCollections } from '../../../support/cypress-helper'; -import { contains, exist, haveText, notExist } from '../../../support/cypress.util'; +import { contains, exist, haveLength, haveText, notExist } from '../../../support/cypress.util'; import { getUserSabine, initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; import { createVorgang, initVorgang } from '../../../support/vorgang-util'; @@ -35,7 +35,7 @@ describe('Kommentar', () => { const mainPage: MainPage = new MainPage(); const vorgangPage: VorgangPage = new VorgangPage(); - const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer(); + const kommentarContainer: KommentarListInVorgangE2EComponent = vorgangPage.getKommentarContainer(); const kommentarText: string = 'Test text to test the test text test'; @@ -90,7 +90,7 @@ describe('Kommentar', () => { }); describe('click on hinzufuegen button in formular', () => { - it('should show error on invalid input', () => { + it('should show error on empty text', () => { kommentarContainer.getFormularSpeichernButton().click(); waitForSpinnerToDisappear(); @@ -101,53 +101,22 @@ describe('Kommentar', () => { kommentarContainer.getTextInput().clear().type(kommentarText); kommentarContainer.getFormularSpeichernButton().click(); - exist(vorgangPage.getSpinner()); - notExist( - kommentarContainer - .getKommentar(kommentarText) - .getUserProfile() - .getIconContainer() - .getAssignedIcon(), - ); - exist(vorgangPage.getSpinner()); waitForSpinnerToDisappear(); - exist( - kommentarContainer - .getKommentar(kommentarText) - .getUserProfile() - .getIconContainer() - .getAssignedIcon(), - ); + exist(kommentarContainer.getKommentar(kommentarText).getUserProfile().getIconContainer().getAssignedIcon()); notExist(kommentarContainer.getTextError()); notExist(kommentarContainer.getFormular()); exist(kommentarContainer.getHinzufuegenButton()); - }); - - it('should show entry in list', () => { exist(kommentarContainer.getKommentar(kommentarText).getRoot()); }); it('should show user profile at kommentar', () => { - exist( - kommentarContainer - .getKommentar(kommentarText) - .getUserProfile() - .getIconContainer() - .getAssignedIcon(), - ); + exist(kommentarContainer.getKommentar(kommentarText).getUserProfile().getIconContainer().getAssignedIcon()); haveText( - kommentarContainer - .getKommentar(kommentarText) - .getUserProfile() - .getIconContainer() - .getAssignedIcon(), + kommentarContainer.getKommentar(kommentarText).getUserProfile().getIconContainer().getAssignedIcon(), userSabine.initials, ); - contains( - kommentarContainer.getKommentar(kommentarText).getUserProfile().getName(), - userSabine.fullName, - ); + contains(kommentarContainer.getKommentar(kommentarText).getUserProfile().getName(), userSabine.fullName); exist(kommentarContainer.getKommentar(kommentarText).getCreatedAt()); }); }); @@ -212,5 +181,27 @@ describe('Kommentar', () => { exist(kommentarContainer.getHinzufuegenButton()); }); }); + + describe('other kommentar', () => { + const otherKommentar: string = 'otherKommentar'; + + it('should be created', () => { + kommentarContainer.getHinzufuegenButton().click(); + kommentarContainer.getTextInput().clear().type(otherKommentar); + kommentarContainer.getFormularSpeichernButton().click(); + waitForSpinnerToDisappear(); + + haveLength(kommentarContainer.getFormulare(), 0); + exist(kommentarContainer.getKommentar(otherKommentar).getRoot()); + }); + + it('should hide previous opened kommentar on edit other kommentar', () => { + kommentarContainer.getKommentar(kommentarText).getRoot().click(); + haveLength(kommentarContainer.getFormulare(), 1); + + kommentarContainer.getKommentar(otherKommentar).getRoot().click(); + haveLength(kommentarContainer.getFormulare(), 1); + }); + }); }); }); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts index 044306b1063a79e993a306928e4a1bf7d9cbf827..70ef41af32be8a87839358860fa5eb7c7243be28 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts @@ -22,7 +22,12 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { faker } from '@faker-js/faker'; -import { AttachmentContainerE2EComponent, AttachmentListE2EComponent, } from 'apps/alfa-e2e/src/components/attachment/attachment.e2e.component'; +import { + AttachmentContainerE2EComponent, + AttachmentListE2EComponent, +} from 'apps/alfa-e2e/src/components/attachment/attachment.e2e.component'; +import { E2EAttachmentHelper } from 'apps/alfa-e2e/src/helper/attachment/attachment.helper'; +import { E2EAttachmentVerifier } from 'apps/alfa-e2e/src/helper/attachment/attachment.verifier'; import { BinaryFileSnackbarMessageE2E } from 'apps/alfa-e2e/src/model/binary-file'; import { PostfachMailFormularE2EComponent } from '../../../components/postfach/postfach-mail-formular.e2e.component'; import { PostfachMailE2EComponent, PostfachMailListItem } from '../../../components/postfach/postfach-mail.e2e.component'; @@ -31,7 +36,12 @@ import { SnackBarE2EComponent } from '../../../components/ui/snackbar.e2e.compon import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; import { VorgangSubnavigationE2EComponent } from '../../../components/vorgang/vorgang-subnavigation'; import { ClientAttributeNameE2E, ClientAttributesE2E, VorgangE2E } from '../../../model/vorgang'; -import { PostfachMailItemE2E, PostfachNachrichtSnackbarMessageE2E, VorgangAttachedItemClientE2E, VorgangAttachedItemE2E, } from '../../../model/vorgang-attached-item'; +import { + PostfachMailItemE2E, + PostfachNachrichtSnackbarMessageE2E, + VorgangAttachedItemClientE2E, + VorgangAttachedItemE2E, +} from '../../../model/vorgang-attached-item'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { PostfachMailPage } from '../../../page-objects/postfach-mail.component.po'; import { VorgangPage } from '../../../page-objects/vorgang.po'; @@ -39,10 +49,20 @@ import { expectIconWithBadge, expectIconWithoutBadge } from '../../../support/an import { dropCollections, readFileFromDownloads } from '../../../support/cypress-helper'; import { beChecked, contains, exist, notBeChecked, notBeVisible, notExist, visible } from '../../../support/cypress.util'; import { TEST_FILE_WITH_CONTENT, TEST_FILE_WITH_CONTENT_4_MB, TEST_FILE_WITHOUT_CONTENT } from '../../../support/data.util'; -import { uploadEmptyFile, uploadFile } from '../../../support/file-upload'; import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; -import { createPostfachNachrichtAttachedItem, createPostfachNachrichtReplyItem, initVorgangAttachedItem, } from '../../../support/vorgang-attached-item-util'; -import { buildVorgang, createHasNewPostfachNachrichtClientAttribute, createHasPostfachNachrichtClientAttribute, createVorgang, initVorgaenge, objectIds, } from '../../../support/vorgang-util'; +import { + createPostfachNachrichtAttachedItem, + createPostfachNachrichtReplyItem, + initVorgangAttachedItem, +} from '../../../support/vorgang-attached-item-util'; +import { + buildVorgang, + createHasNewPostfachNachrichtClientAttribute, + createHasPostfachNachrichtClientAttribute, + createVorgang, + initVorgaenge, + objectIds, +} from '../../../support/vorgang-util'; describe('PostfachMail', () => { const mainPage: MainPage = new MainPage(); @@ -57,6 +77,9 @@ describe('PostfachMail', () => { const attachmentContainer: AttachmentContainerE2EComponent = postfachMailFormular.getAttachmentContainer(); const attachmentList: AttachmentListE2EComponent = attachmentContainer.getList(); + const attachmentHelper: E2EAttachmentHelper = new E2EAttachmentHelper(); + const attachmentVerifier: E2EAttachmentVerifier = new E2EAttachmentVerifier(); + const postfachMailPage: PostfachMailPage = new PostfachMailPage(); const clientAttributes: ClientAttributesE2E = { @@ -226,45 +249,47 @@ describe('PostfachMail', () => { describe('attach files', () => { it('should show empty attachment after uploading it', () => { - uploadEmptyFile(attachmentContainer.getUploadInput(), TEST_FILE_WITHOUT_CONTENT); - waitForSpinnerToDisappear(); + attachmentHelper.uploadEmptyAttachment(); - exist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + attachmentVerifier.verifyAttachmentInList(TEST_FILE_WITHOUT_CONTENT); }); it('should show attachment with content after uploading it', () => { - uploadFile(postfachMailFormular.getAttachmentContainer().getUploadInput(), TEST_FILE_WITH_CONTENT); - waitForSpinnerToDisappear(); + attachmentHelper.uploadAttachment(); - exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + attachmentVerifier.verifyAttachmentInList(TEST_FILE_WITH_CONTENT); }); it('should download empty attachment on click', () => { - attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getDownloadButton().click(); - waitForSpinnerToDisappear(); + attachmentHelper.downloadAttachment(TEST_FILE_WITHOUT_CONTENT); - exist(readFileFromDownloads(TEST_FILE_WITHOUT_CONTENT)); + attachmentVerifier.verifyAttachmentDownload(TEST_FILE_WITHOUT_CONTENT); }); it('should download attachment with content on click', () => { - attachmentList.getItem(TEST_FILE_WITH_CONTENT).getDownloadButton().click(); - waitForSpinnerToDisappear(); + attachmentHelper.downloadAttachment(TEST_FILE_WITH_CONTENT); - exist(readFileFromDownloads(TEST_FILE_WITH_CONTENT)); + attachmentVerifier.verifyAttachmentDownload(TEST_FILE_WITH_CONTENT); }); it('should not show empty attachment after deleting it', () => { - attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getDeleteButton().click(); - waitForSpinnerToDisappear(); + attachmentHelper.deleteAttachment(TEST_FILE_WITHOUT_CONTENT); + + attachmentVerifier.verifyAttachmentNotInList(TEST_FILE_WITHOUT_CONTENT); + }); - notExist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + it('should delete and multi upload all', () => { + attachmentHelper.deleteAttachments([TEST_FILE_WITH_CONTENT]); + + attachmentHelper.uploadAttachments([TEST_FILE_WITH_CONTENT, TEST_FILE_WITHOUT_CONTENT]); + + attachmentVerifier.verifyAttachmentsInList([TEST_FILE_WITH_CONTENT, TEST_FILE_WITHOUT_CONTENT]); }); }); describe('attach file > 3 MB', () => { - it('should show failed upload', () => { - uploadFile(postfachMailFormular.getAttachmentContainer().getUploadInput(), TEST_FILE_WITH_CONTENT_4_MB); - waitForSpinnerToDisappear(); + it('should show failed upload', { defaultCommandTimeout: 90000 }, () => { + attachmentHelper.uploadAttachment(TEST_FILE_WITH_CONTENT_4_MB); exist(attachmentList.getLoadingOrErrorItem(TEST_FILE_WITH_CONTENT_4_MB).getRoot()); contains( diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-anhang/vorgang-anhang-herunterladen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-anhang/vorgang-anhang-herunterladen.cy.ts index 66ed9474b72739851ea9c6f0eb4845b761d91377..122141ad34b4cb0fbf1b594b071ffaa932e9166f 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-anhang/vorgang-anhang-herunterladen.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-anhang/vorgang-anhang-herunterladen.cy.ts @@ -132,7 +132,7 @@ describe('Vorgang Anhänge', () => { }); it('should download attachment zip file', () => { - attachmentList.downloadAttachments(); + attachmentList.getDownloadArchiveButton().click(); waitForSpinnerToDisappear(); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-abbrechen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-abbrechen.cy.ts index 7292aa333e4233b18c846485f02d316a080b6dc4..d7f9e7a5a73f9fa0eb942be9e5b64b25e4f53169 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-abbrechen.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-abbrechen.cy.ts @@ -88,9 +88,9 @@ describe('Vorgang - Bescheid abbrechen', () => { it('should upload files and continue to step 3', () => { bescheidWizard.uploadBescheid(TEST_FILE_BESCHEID_VALID); - bescheidWizard.bescheidUploadSpinnerIsClosed(); + waitForSpinnerToDisappear(); bescheidWizard.uploadAttachment(TEST_FILE_BESCHEID_ANHANG_VALID); - bescheidWizard.attachmentSpinnerIsClosed(); + waitForSpinnerToDisappear(); bescheidWizard.weiter(); bescheidWizard.isBescheidVersendenStep(); @@ -140,9 +140,10 @@ describe('Vorgang - Bescheid abbrechen', () => { it('should upload Bescheid and attachment', () => { uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); + uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID); - notExist(bescheidWizard.getAttachmentUploadSpinner()); + waitForSpinnerToDisappear(); }); it('should open dialog after click on X', () => { bescheidWizard.close(); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-automatisch-erstellen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-automatisch-erstellen.cy.ts index 7cd0331269d087f962a1602f91a87b27ddf14128..1a8e2f654385e9d00a147f3d87277d3d4c175686 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-automatisch-erstellen.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-automatisch-erstellen.cy.ts @@ -28,12 +28,7 @@ import { VorgangBescheidWizardE2EComponent } from 'apps/alfa-e2e/src/components/ import { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components'; import { VorgangSubnavigationE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-subnavigation'; import { SmockerMocks } from 'apps/alfa-e2e/src/model/smocker'; -import { - EingangE2E, - EingangHeaderE2E, - VorgangE2E, - VorgangStatusE2E, -} from 'apps/alfa-e2e/src/model/vorgang'; +import { EingangE2E, EingangHeaderE2E, VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang'; import 'cypress-real-events/support'; import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; @@ -41,12 +36,7 @@ import { VorgangPage } from '../../../page-objects/vorgang.po'; import { addSmockerMock, dropCollections } from '../../../support/cypress-helper'; import { exist, haveText, notExist } from '../../../support/cypress.util'; import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; -import { - buildVorgang, - createVorgang, - initVorgaenge, - objectIds, -} from '../../../support/vorgang-util'; +import { buildVorgang, createVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util'; registerLocaleData(localeDe, 'de', localeDeExtra); @@ -79,8 +69,7 @@ describe('Upload automatic Bescheid', () => { status: VorgangStatusE2E.IN_BEARBEITUNG, }; - const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = - vorgangPage.getFormularButtons(); + const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons(); const vorgangSubnavigation: VorgangSubnavigationE2EComponent = vorgangPage.getSubnavigation(); @@ -114,8 +103,7 @@ describe('Upload automatic Bescheid', () => { waitForSpinnerToDisappear(); bescheidWizard.getUploadAutomaticBescheidButton().click(); - exist(bescheidWizard.getBescheidUploadSpinner()); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); exist(bescheidWizard.getAutomaticBescheidFileInWizard()); }); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-dokumente-hochladen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-dokumente-hochladen.cy.ts index 2f0235885f20f005854b6a72df819534cbd15c6c..71531d122d7f3fdc14570feb7d498dd7f449b467 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-dokumente-hochladen.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-dokumente-hochladen.cy.ts @@ -26,15 +26,25 @@ import localeDe from '@angular/common/locales/de'; import localeDeExtra from '@angular/common/locales/extra/de'; import { VorgangBescheidWizardE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-bescheid-wizard.e2e.component'; import { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components'; +import { E2EAttachmentHelper } from 'apps/alfa-e2e/src/helper/attachment/attachment.helper'; +import { E2EAttachmentVerifier } from 'apps/alfa-e2e/src/helper/attachment/attachment.verifier'; import { VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang'; import { uploadFile } from 'apps/alfa-e2e/src/support/file-upload'; import 'cypress-real-events/support'; import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { VorgangPage } from '../../../page-objects/vorgang.po'; -import { dropCollections, getTestElement } from '../../../support/cypress-helper'; +import { dropCollections } from '../../../support/cypress-helper'; import { contains, exist, haveText, haveValue, notContains, notExist } from '../../../support/cypress.util'; -import { TEST_FILE_BESCHEID_ANHANG_BIG, TEST_FILE_BESCHEID_ANHANG_VALID, TEST_FILE_BESCHEID_VALID, TEST_FILE_JPEG, TEST_FILE_JPG, TEST_FILE_PNG, TEST_FILE_WITH_CONTENT, } from '../../../support/data.util'; +import { + TEST_FILE_BESCHEID_ANHANG_BIG, + TEST_FILE_BESCHEID_ANHANG_VALID, + TEST_FILE_BESCHEID_VALID, + TEST_FILE_JPEG, + TEST_FILE_JPG, + TEST_FILE_PNG, + TEST_FILE_WITH_CONTENT, +} from '../../../support/data.util'; import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; import { buildVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util'; @@ -54,6 +64,9 @@ describe('Bescheid Dokumente hochladen', () => { const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons(); + const attachmentHelper: E2EAttachmentHelper = new E2EAttachmentHelper(); + const attachmentVerifier: E2EAttachmentVerifier = new E2EAttachmentVerifier(); + const documentError: string = 'Erlaubte Dateiendungen'; const sizeError: string = 'Anhänge größer'; const missingBescheidError: string = 'Bitte fügen Sie ein Bescheiddokument hinzu.'; @@ -90,13 +103,15 @@ describe('Bescheid Dokumente hochladen', () => { it('should upload manual Bescheid file', () => { uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); + exist(bescheidWizard.getFileBescheidValidInWizard()); }); it('should upload attachment file', () => { - uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID); - exist(bescheidWizard.getFileAnhangValidInWizard()); + attachmentHelper.uploadAttachment(TEST_FILE_BESCHEID_ANHANG_VALID); + + attachmentVerifier.verifyAttachmentInList(TEST_FILE_BESCHEID_ANHANG_VALID); }); it('should still show files after clicking Weiter and step 2', () => { @@ -127,15 +142,9 @@ describe('Bescheid Dokumente hochladen', () => { }); it('should be able to attach all valid types of files', () => { - uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_JPG); - notExist(bescheidWizard.getAttachmentUploadSpinner()); - uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_JPEG); - notExist(bescheidWizard.getAttachmentUploadSpinner()); - uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_PNG); - notExist(bescheidWizard.getAttachmentUploadSpinner()); - exist(getTestElement(bescheidWizard.getElementFromFileName(TEST_FILE_JPG))); - exist(getTestElement(bescheidWizard.getElementFromFileName(TEST_FILE_JPEG))); - exist(getTestElement(bescheidWizard.getElementFromFileName(TEST_FILE_PNG))); + attachmentHelper.uploadAttachments([TEST_FILE_JPG, TEST_FILE_JPEG, TEST_FILE_PNG]); + + attachmentVerifier.verifyAttachmentsInList([TEST_FILE_JPG, TEST_FILE_JPEG, TEST_FILE_PNG]); }); }); @@ -145,8 +154,9 @@ describe('Bescheid Dokumente hochladen', () => { contains(bescheidWizard.getBescheidDocument(), documentError); }); - it('should show error if file is too big', () => { + it('should show error if file is too big', { defaultCommandTimeout: 90000 }, () => { uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_BIG); + contains(bescheidWizard.getAttachmentDocument(), sizeError); }); }); @@ -162,7 +172,7 @@ describe('Bescheid Dokumente hochladen', () => { describe('check contents of step 3', () => { it('should show Max Testermann as Antragsteller, the default message text', () => { uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); bescheidWizard.getWeiterButton().click(); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-historie.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-historie.cy.ts index 36320a61d712fa2189a6e23b43971de8fe1ffbf6..55c6b8b418ee3224b35210e6b963dbf78e03d268 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-historie.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-historie.cy.ts @@ -29,7 +29,10 @@ import { VorgangBescheideE2EComponent } from 'apps/alfa-e2e/src/components/vorga import { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components'; import { VorgangFormularDatenE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular.e2e.component'; import { VorgangSubnavigationE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-subnavigation'; -import { BescheidHistorieItemE2EComponent, VorgangFormularDatenHistorieItemE2EComponent, } from 'apps/alfa-e2e/src/components/vorgang/vorgang.formular-daten.historie.e2e.component'; +import { + BescheidHistorieItemE2EComponent, + VorgangFormularDatenHistorieItemE2EComponent, +} from 'apps/alfa-e2e/src/components/vorgang/vorgang.formular-daten.historie.e2e.component'; import { HistorieHeadlineE2E } from 'apps/alfa-e2e/src/model/historie'; import { VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang'; import { TEST_FILE_BESCHEID_ANHANG_VALID, TEST_FILE_BESCHEID_VALID } from 'apps/alfa-e2e/src/support/data.util'; @@ -110,9 +113,9 @@ describe('Bescheid History', () => { waitForSpinnerToDisappear(); uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID); - notExist(bescheidWizard.getAttachmentUploadSpinner()); + waitForSpinnerToDisappear(); bescheidWizard.getWeiterButton().click(); waitForSpinnerToDisappear(); wait(waitForFormPatchMillis, 'Wait for patch form values to be completed.'); @@ -151,7 +154,7 @@ describe('Bescheid History', () => { waitForSpinnerToDisappear(); uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); bescheidWizard.getWeiterButton().click(); waitForSpinnerToDisappear(); wait(waitForFormPatchMillis, 'Wait for patch form values to be completed.'); @@ -186,17 +189,16 @@ describe('Bescheid History', () => { waitForSpinnerToDisappear(); uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID); - notExist(bescheidWizard.getAttachmentUploadSpinner()); + waitForSpinnerToDisappear(); uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID); - notExist(bescheidWizard.getAttachmentUploadSpinner()); + waitForSpinnerToDisappear(); bescheidWizard.getWeiterButton().click(); waitForSpinnerToDisappear(); bescheidWizard.getSendButton().click(); - exist(bescheidWizard.getSendenSpinner()); - notExist(bescheidWizard.getSendenSpinner()); + waitForSpinnerToDisappear(); vorgangDatenFormular.getHistorieTab().click(); const historieItemExpand: VorgangFormularDatenHistorieItemE2EComponent = vorgangDatenFormular.getHistorieItemByIndex(0); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-info-anzeigen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-info-anzeigen.cy.ts index a6d7e8cc4795a1794745211f20c99a6f4a7e213e..d0e5d9939d952ad91aad4b1539b7989decf1f00b 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-info-anzeigen.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-info-anzeigen.cy.ts @@ -132,9 +132,9 @@ describe('Bescheid Info anzeigen', () => { it('should upload files and continue to step 3', () => { bescheidWizard.uploadBescheid(TEST_FILE_BESCHEID_VALID); - bescheidWizard.bescheidUploadSpinnerIsClosed(); + waitForSpinnerToDisappear(); bescheidWizard.uploadAttachment(TEST_FILE_BESCHEID_ANHANG_VALID); - bescheidWizard.attachmentSpinnerIsClosed(); + waitForSpinnerToDisappear(); bescheidWizard.weiter(); bescheidWizard.isBescheidVersendenStep(); @@ -193,7 +193,7 @@ describe('Bescheid Info anzeigen', () => { it('should upload Bescheid and continue to step 3', () => { bescheidWizard.uploadBescheid(TEST_FILE_BESCHEID_VALID); - bescheidWizard.bescheidUploadSpinnerIsClosed(); + waitForSpinnerToDisappear(); bescheidWizard.weiter(); bescheidWizard.isBescheidVersendenStep(); }); @@ -201,9 +201,7 @@ describe('Bescheid Info anzeigen', () => { it('should show 2 Bescheid containers after saving', () => { bescheidWizard.getSaveButton().click(); bescheidWizard.getConfirmAndSaveButton().click(); - exist(bescheidWizard.getBescheidSaveSpinner()); - notExist(bescheidWizard.getBescheidSaveSpinner()); - + waitForSpinnerToDisappear(); haveLength(bescheide.getBescheidContainer(), 2); }); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-nur-speichern.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-nur-speichern.cy.ts index f7c01770b981f35ce9753d9898b89648dfcfb685..54c4965b9fb8e41f6cced9749f375e472bc5a262 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-nur-speichern.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-nur-speichern.cy.ts @@ -83,9 +83,9 @@ describe('Bescheid speichern', () => { enterWith(bescheidWizard.getDateInput(), getAdjustedDateGerman(-1)); bescheidWizard.getWeiterButton().click(); uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID); - notExist(bescheidWizard.getAttachmentUploadSpinner()); + waitForSpinnerToDisappear(); bescheidWizard.getWeiterButton().click(); waitForSpinnerToDisappear(); wait(waitForFormPatchMillis, 'Wait for patch form values to be completed.'); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-senden.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-senden.cy.ts index 7d5ccdabee70ce2b9e5307e61cf20b79d18919f5..43e23febb7f15a82dd1431890c52590438388cfd 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-senden.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-senden.cy.ts @@ -32,10 +32,7 @@ import { VorgangBescheidWizardE2EComponent } from 'apps/alfa-e2e/src/components/ import { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components'; import { VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang'; import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach-mail.component.po'; -import { - TEST_FILE_BESCHEID_ANHANG_VALID, - TEST_FILE_BESCHEID_VALID, -} from 'apps/alfa-e2e/src/support/data.util'; +import { TEST_FILE_BESCHEID_ANHANG_VALID, TEST_FILE_BESCHEID_VALID } from 'apps/alfa-e2e/src/support/data.util'; import { uploadFile } from 'apps/alfa-e2e/src/support/file-upload'; import { getAdjustedDateGerman } from 'apps/alfa-e2e/src/support/tech.util'; import 'cypress-real-events/support'; @@ -43,7 +40,7 @@ import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-lis import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { VorgangPage } from '../../../page-objects/vorgang.po'; import { dropCollections } from '../../../support/cypress-helper'; -import { contains, enterWith, exist, notExist } from '../../../support/cypress.util'; +import { contains, enterWith, exist } from '../../../support/cypress.util'; import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; import { buildVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util'; @@ -66,8 +63,7 @@ describe('Bescheid senden', () => { status: VorgangStatusE2E.IN_BEARBEITUNG, }; - const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = - vorgangPage.getFormularButtons(); + const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons(); before(() => { initVorgaenge([bescheidSendenVorgang]); @@ -93,9 +89,9 @@ describe('Bescheid senden', () => { enterWith(bescheidWizard.getDateInput(), getAdjustedDateGerman(1)); bescheidWizard.getWeiterButton().click(); uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID); - notExist(bescheidWizard.getAttachmentUploadSpinner()); + waitForSpinnerToDisappear(); bescheidWizard.getWeiterButton().click(); bescheidWizard.getSendButton().click(); @@ -114,21 +110,9 @@ describe('Bescheid senden', () => { const postfachListItem: PostfachMailListItem = postfachMailPage.getListItem(mailText); contains(postfachMailPage.getMailText(), anredeText); - exist( - postfachListItem - .getAttachmentContainer() - .getList() - .getItem(TEST_FILE_BESCHEID_VALID) - .getRoot(), - ); - - exist( - postfachListItem - .getAttachmentContainer() - .getList() - .getItem(TEST_FILE_BESCHEID_ANHANG_VALID) - .getRoot(), - ); + exist(postfachListItem.getAttachmentContainer().getList().getItem(TEST_FILE_BESCHEID_VALID).getRoot()); + + exist(postfachListItem.getAttachmentContainer().getList().getItem(TEST_FILE_BESCHEID_ANHANG_VALID).getRoot()); }); }); }); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-wizard.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-wizard.cy.ts index d02307f1af90ab1e2a3fdaa354534dd8861cba7c..06378019b3ceaf1a1d74e8143846923091b7c2a0 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-wizard.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-wizard.cy.ts @@ -118,7 +118,7 @@ describe('Bescheid Wizard', () => { bescheidWizard.getRoot().should('not.contain', stepCaption3); uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); bescheidWizard.getWeiterButton().click(); waitForSpinnerToDisappear(); bescheidWizard.getRoot().contains(stepCaption1); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-dateien-tab.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-dateien-tab.cy.ts index c93d89d9e08a0433aa15dc52a59e02b8a848f3c1..c1b5866cb7d4483cae346c7a3b036ae99654975c 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-dateien-tab.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-dateien-tab.cy.ts @@ -140,7 +140,7 @@ describe('Dateien Tab', () => { it('should show attachments and download button', () => { exist(vorgangDatenFormular.getFileElementByName(jpgFileName)); exist(vorgangDatenFormular.getFileElementByName(pdfFileName)); - exist(attachmentList.getDownloadAttachmentsButton(vorgangDatenFormular.getRoot())); + exist(attachmentList.getDownloadArchiveButton()); }); }); }); diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-xdomea/vorgang-xdomea-inhalte.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-xdomea/vorgang-xdomea-inhalte.cy.ts index 1ed205ce1acecae3028a6682411de030b49c17cb..ff177ddcffc8fae0d04a2294b6c3176c07062abd 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-xdomea/vorgang-xdomea-inhalte.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-xdomea/vorgang-xdomea-inhalte.cy.ts @@ -36,10 +36,7 @@ import { VorgangAttachedItemE2E } from 'apps/alfa-e2e/src/model/vorgang-attached import { buildCommand, initCommands } from 'apps/alfa-e2e/src/support/command-util'; import { TEST_FILE_BESCHEID_VALID } from 'apps/alfa-e2e/src/support/data.util'; import { uploadFile } from 'apps/alfa-e2e/src/support/file-upload'; -import { - createKommentar, - createKommentarAttachedItem, -} from 'apps/alfa-e2e/src/support/kommentar.util'; +import { createKommentar, createKommentarAttachedItem } from 'apps/alfa-e2e/src/support/kommentar.util'; import { initVorgangAttachedItem } from 'apps/alfa-e2e/src/support/vorgang-attached-item-util'; import { objectIds } from 'apps/alfa-e2e/src/support/vorgang-util'; import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; @@ -53,7 +50,7 @@ import { getDownloadFiles, unzipDownloadFile, } from '../../../support/cypress-helper'; -import { exist, notExist } from '../../../support/cypress.util'; +import { exist } from '../../../support/cypress.util'; import { parseXml } from '../../../support/tech.util'; import { getUserDorotheaId, initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; import { createVorgang, initVorgang } from '../../../support/vorgang-util'; @@ -81,11 +78,7 @@ describe('check xDomea contents', () => { }; const assignUserCommand: CommandE2E = { - ...buildCommand( - CommandOrderE2E.ASSIGN_USER, - vorgangExportieren._id.$oid, - vorgangExportieren._id.$oid, - ), + ...buildCommand(CommandOrderE2E.ASSIGN_USER, vorgangExportieren._id.$oid, vorgangExportieren._id.$oid), bodyObject: { assignedTo: getUserDorotheaId() }, finishedAt: { $date: '2024-06-20T07:25:30.000Z' }, }; @@ -102,11 +95,7 @@ describe('check xDomea contents', () => { }; const setAktenzeichenCommand: CommandE2E = { - ...buildCommand( - CommandOrderE2E.SET_AKTENZEICHEN, - vorgangExportieren._id.$oid, - vorgangExportieren._id.$oid, - ), + ...buildCommand(CommandOrderE2E.SET_AKTENZEICHEN, vorgangExportieren._id.$oid, vorgangExportieren._id.$oid), order: CommandOrderE2E.SET_AKTENZEICHEN, bodyObject: { aktenzeichen: 'AKT_ENZ_EIC_HEN1' }, finishedAt: { $date: '2024-06-19T07:25:30.000Z' }, @@ -121,8 +110,7 @@ describe('check xDomea contents', () => { item: kommentar, }; - const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = - vorgangPage.getFormularButtons(); + const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons(); const bescheidWizard: VorgangBescheidWizardE2EComponent = vorgangPage.getBescheidWizard(); @@ -148,7 +136,7 @@ describe('check xDomea contents', () => { vorgangFormularButtons.getBescheidenButton().click(); bescheidWizard.weiter(); uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID); - notExist(bescheidWizard.getBescheidUploadSpinner()); + waitForSpinnerToDisappear(); bescheidWizard.weiter(); bescheidWizard.getSendButton().click(); waitForSpinnerToDisappear(); @@ -237,12 +225,7 @@ describe('check xDomea contents', () => { return getXMLFromTagAtPosition(xdomeaNamespace, content, tagName, position); } - function getXMLFromTagAtPosition( - namespaceURI: string, - content: string, - tagName: string, - position: number, - ) { + function getXMLFromTagAtPosition(namespaceURI: string, content: string, tagName: string, position: number) { const xmlDoc = parseXml(content); return xmlDoc.getElementsByTagNameNS(namespaceURI, tagName)[position].textContent; } @@ -273,9 +256,7 @@ describe('check xDomea contents', () => { function compareXmlEntry(xDomeaFile: string, xmlMap: Map<XmlTypePosition, string>) { xmlMap.forEach((expectedValue, xmlTypePosition) => { - expect( - getXdomeaNamespace(xDomeaFile, xmlTypePosition.type, xmlTypePosition.position), - ).to.equal(expectedValue); + expect(getXdomeaNamespace(xDomeaFile, xmlTypePosition.type, xmlTypePosition.position)).to.equal(expectedValue); }); } diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.cy.ts index a32737f51ba4be5eb46a092f211db36236f239cf..fa176831377d0b9775f4991bdaa1ccd2454df68a 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.cy.ts @@ -21,10 +21,15 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { AttachmentContainerE2EComponent, AttachmentListE2EComponent, } from 'apps/alfa-e2e/src/components/attachment/attachment.e2e.component'; +import { + AttachmentContainerE2EComponent, + AttachmentListE2EComponent, +} from 'apps/alfa-e2e/src/components/attachment/attachment.e2e.component'; import { WiedervorlageSubnavigationE2EComponent } from 'apps/alfa-e2e/src/components/wiedervorlage/wiedervorlage-subnavigation'; +import { E2EAttachmentHelper } from 'apps/alfa-e2e/src/helper/attachment/attachment.helper'; +import { E2EWiedervorlageHelper } from 'apps/alfa-e2e/src/helper/wiedervorlage/wiedervorlage.helper'; import { WiedervorlageE2E } from 'apps/alfa-e2e/src/model/wiedervorlage'; -import { dropCollections, readFileFromDownloads, wait } from 'apps/alfa-e2e/src/support/cypress-helper'; +import { dropCollections, readFileFromDownloads } from 'apps/alfa-e2e/src/support/cypress-helper'; import { initVorgangAttachedItem } from 'apps/alfa-e2e/src/support/vorgang-attached-item-util'; import { SnackBarE2EComponent } from '../../../components/ui/snackbar.e2e.component'; import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; @@ -37,7 +42,6 @@ import { VorgangPage } from '../../../page-objects/vorgang.po'; import { WiedervorlagePage } from '../../../page-objects/wiedervorlage.po'; import { containClass, contains, exist, haveLength, notContainClass, notExist } from '../../../support/cypress.util'; import { TEST_FILE_WITH_CONTENT, TEST_FILE_WITH_CONTENT_46MB, TEST_FILE_WITHOUT_CONTENT } from '../../../support/data.util'; -import { uploadEmptyFile, uploadFile } from '../../../support/file-upload'; import { loginAsSabine } from '../../../support/user-util'; import { createVorgang, initVorgang, objectIds } from '../../../support/vorgang-util'; import { createWiedervorlageAttachedItem, createWiedervorlageItem } from '../../../support/wiedervorlage-util'; @@ -60,6 +64,9 @@ describe('Wiedervorlage attachments', () => { const snackbar: SnackBarE2EComponent = mainPage.getSnackBar(); + const wiedervorlageHelper: E2EWiedervorlageHelper = new E2EWiedervorlageHelper(); + const attachmentHelper: E2EAttachmentHelper = new E2EAttachmentHelper(); + const WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF: string = 'WiedervorlageWithAttachments'; const vorgang: VorgangE2E = createVorgang(); @@ -89,36 +96,31 @@ describe('Wiedervorlage attachments', () => { }); it('should show wiedervorlage page on click on create wiedervorlage button', () => { - wiedervorlageContainerInVorgang.getCreateWiedervorlageButton().click(); - waitForSpinnerToDisappear(); + wiedervorlageHelper.openNewWiedervorlage(); exist(wiedervorlagePage.getRoot()); }); it('should show empty attachment after upload', () => { - uploadEmptyFile(attachmentContainer.getUploadInput(), TEST_FILE_WITHOUT_CONTENT); - waitForSpinnerToDisappear(); + attachmentHelper.uploadEmptyAttachment(); exist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); }); it('should download empty attachment on click', () => { - attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getDownloadButton().click(); - waitForSpinnerToDisappear(); + attachmentHelper.downloadAttachment(TEST_FILE_WITHOUT_CONTENT); exist(readFileFromDownloads(TEST_FILE_WITHOUT_CONTENT)); }); it('should show attachment with content after download', () => { - uploadFile(attachmentContainer.getUploadInput(), TEST_FILE_WITH_CONTENT); - waitForSpinnerToDisappear(); + attachmentHelper.uploadAttachment(TEST_FILE_WITH_CONTENT); exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); }); - it('should show failed upload', { defaultCommandTimeout: 30000 }, () => { - uploadFile(attachmentContainer.getUploadInput(), TEST_FILE_WITH_CONTENT_46MB); - waitForSpinnerToDisappear(); + it('should show failed upload on bigger size than allowed', { defaultCommandTimeout: 300000 }, () => { + attachmentHelper.uploadAttachment(TEST_FILE_WITH_CONTENT_46MB); exist(attachmentList.getLoadingOrErrorItem(TEST_FILE_WITH_CONTENT_46MB).getRoot()); contains( @@ -128,8 +130,7 @@ describe('Wiedervorlage attachments', () => { }); it('should download attachment on click', () => { - attachmentList.getItem(TEST_FILE_WITH_CONTENT).getDownloadButton().click(); - waitForSpinnerToDisappear(); + attachmentHelper.downloadAttachment(TEST_FILE_WITH_CONTENT); exist(readFileFromDownloads(TEST_FILE_WITH_CONTENT)); }); @@ -205,22 +206,63 @@ describe('Wiedervorlage attachments', () => { }); }); - describe('Delete attachment', () => { + describe('Upload multiple attachments', () => { const wiedervorlageComp: WiedervorlageInVorgangE2EComponent = wiedervorlageContainerInVorgang.getWiedervorlage( WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF, ); it('should open wiedervorlage page', () => { - wiedervorlageComp.getLink().click(); + wiedervorlageHelper.openWiedervorlage(WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF); + + exist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + }); + + it('should delete all', () => { + attachmentHelper.deleteAttachment(TEST_FILE_WITH_CONTENT); + attachmentHelper.deleteAttachment(TEST_FILE_WITHOUT_CONTENT); + + notExist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + notExist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + }); + + it('should do upload', () => { + attachmentHelper.uploadAttachments([TEST_FILE_WITHOUT_CONTENT, TEST_FILE_WITH_CONTENT]); + + exist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + + wiedervorlageContainer.getSpeichernButton().click(); + exist(snackbar.getMessage()); + contains(snackbar.getMessage(), `Die Wiedervorlage "${WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF}" wurde gespeichert`); + snackbar.getCloseButton().click(); + }); + + it('check attachments in wiedervorlage list', () => { waitForSpinnerToDisappear(); + wiedervorlageComp.getExpandButton(); + wiedervorlageComp.expandItem(); + + exist(wiedervorlageComp.getAttachmentContainer().getList().getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); + exist(wiedervorlageComp.getAttachmentContainer().getList().getItem(TEST_FILE_WITH_CONTENT).getRoot()); + }); + }); + + describe('Delete attachment', () => { + const wiedervorlageComp: WiedervorlageInVorgangE2EComponent = wiedervorlageContainerInVorgang.getWiedervorlage( + WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF, + ); + + it('should open wiedervorlage page', () => { + wiedervorlageHelper.openWiedervorlage(WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF); + exist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); }); it('delete', () => { - attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getDeleteButton().click(); - waitForSpinnerToDisappear(); + attachmentHelper.deleteAttachment(TEST_FILE_WITHOUT_CONTENT); notExist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); @@ -239,6 +281,7 @@ describe('Wiedervorlage attachments', () => { wiedervorlageComp.getExpandButton(); wiedervorlageComp.expandItem(); + waitForSpinnerToDisappear(); notExist(wiedervorlageComp.getAttachmentContainer().getList().getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); exist(wiedervorlageComp.getAttachmentContainer().getList().getItem(TEST_FILE_WITH_CONTENT).getRoot()); @@ -251,28 +294,22 @@ describe('Wiedervorlage attachments', () => { ); it('should not show any attachments', () => { - wiedervorlageComp.getLink().click(); - waitForSpinnerToDisappear(); + wiedervorlageHelper.openWiedervorlage(wiedervorlage.betreff); notExist(wiedervorlageComp.getAttachmentContainer().getList().getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); notExist(wiedervorlageComp.getAttachmentContainer().getList().getItem(TEST_FILE_WITH_CONTENT).getRoot()); wiedervorlagePage.getSubnavigation().navigateBack(); + waitForSpinnerToDisappear(); }); }); describe('Same number of attachments after status change', () => { - const wiedervorlageComp: WiedervorlageInVorgangE2EComponent = wiedervorlageContainerInVorgang.getWiedervorlage( - WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF, - ); - it('should open wiedervorlage page', () => { - wait(500); - wiedervorlageComp.getLink().click(); - - waitForSpinnerToDisappear(); + wiedervorlageHelper.openWiedervorlage(WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF); exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); + notExist(attachmentList.getItem(TEST_FILE_WITHOUT_CONTENT).getRoot()); }); it('should mark as erledigt', () => { @@ -317,8 +354,7 @@ describe('Wiedervorlage attachments', () => { describe('delete last attachment', () => { it('should remove on delete', () => { - attachmentList.getItem(TEST_FILE_WITH_CONTENT).getDeleteButton().click(); - waitForSpinnerToDisappear(); + attachmentHelper.deleteAttachment(TEST_FILE_WITH_CONTENT); notExist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); }); @@ -337,7 +373,7 @@ describe('Wiedervorlage attachments', () => { notExist(snackBar.getMessage()); }); - it('(Skip reason in OZG-4658) should have no attachments after save', () => { + it('should have no attachments after save', () => { const wiedervorlageComp: WiedervorlageInVorgangE2EComponent = wiedervorlageContainerInVorgang.getWiedervorlage( WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF, ); diff --git a/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.executor.ts b/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.executor.ts new file mode 100644 index 0000000000000000000000000000000000000000..25b0dce789373955a60b97632848ac2c8c218dde --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.executor.ts @@ -0,0 +1,44 @@ +import { AttachmentContainerE2EComponent, AttachmentE2EItem } from '../../components/attachment/attachment.e2e.component'; +import { waitForSpinnerToDisappear } from '../../page-objects/main.po'; +import { exist, notExist } from '../../support/cypress.util'; +import { uploadEmptyFile, uploadFiles } from '../../support/file-upload'; + +export class E2EAttachmentExecutor { + private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent(); + + public uploadAttachment(fileNames: string[]): void { + uploadFiles(this.getUploadInput(), fileNames); + waitForSpinnerToDisappear(); + } + + public uploadEmptyAttachment(fileName: string): void { + uploadEmptyFile(this.getUploadInput(), fileName); + waitForSpinnerToDisappear(); + } + + private getUploadInput(): Cypress.Chainable<HTMLElement> { + return this.attachmentContainer.getUploadInput(); + } + + public deleteAttachments(fileNames: string[]): void { + fileNames.forEach((fileName: string) => this.deleteAttachment(fileName)); + } + + private deleteAttachment(fileName: string): void { + const attachment: AttachmentE2EItem = this.getAttachment(fileName); + exist(attachment.getRoot()); + attachment.getDeleteButton().click(); + notExist(attachment.getRoot()); + } + + public downloadAttachment(fileName: string): void { + const attachment: AttachmentE2EItem = this.getAttachment(fileName); + exist(attachment.getRoot()); + attachment.getDownloadButton().click(); + waitForSpinnerToDisappear(); + } + + private getAttachment(fileName: string): AttachmentE2EItem { + return this.attachmentContainer.getList().getItem(fileName); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.helper.ts b/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.helper.ts new file mode 100644 index 0000000000000000000000000000000000000000..dd9743081a8eae3596b692daf53ff5b2479ce74b --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.helper.ts @@ -0,0 +1,30 @@ +import { TEST_FILE_WITH_CONTENT, TEST_FILE_WITHOUT_CONTENT } from '../../support/data.util'; +import { E2EAttachmentExecutor } from './attachment.executor'; + +export class E2EAttachmentHelper { + private readonly executor: E2EAttachmentExecutor = new E2EAttachmentExecutor(); + + public deleteAttachment(fileName: string): void { + this.deleteAttachments([fileName]); + } + + public deleteAttachments(fileNames: string[]): void { + this.executor.deleteAttachments(fileNames); + } + + public uploadAttachment(fileName: string = TEST_FILE_WITH_CONTENT): void { + this.uploadAttachments([fileName]); + } + + public uploadAttachments(fileNames: string[]): void { + this.executor.uploadAttachment(fileNames); + } + + public uploadEmptyAttachment(fileName: string = TEST_FILE_WITHOUT_CONTENT): void { + this.executor.uploadEmptyAttachment(fileName); + } + + public downloadAttachment(fileName: string): void { + this.executor.downloadAttachment(fileName); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.verifier.ts b/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.verifier.ts new file mode 100644 index 0000000000000000000000000000000000000000..2c68292a0e10bdfac3e20d83377120a258d08b25 --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/attachment/attachment.verifier.ts @@ -0,0 +1,23 @@ +import { AttachmentContainerE2EComponent } from '../../components/attachment/attachment.e2e.component'; +import { readFileFromDownloads } from '../../support/cypress-helper'; +import { exist, notExist } from '../../support/cypress.util'; + +export class E2EAttachmentVerifier { + private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent(); + + public verifyAttachmentsInList(filesNames: string[]): void { + filesNames.forEach((filesName: string) => this.verifyAttachmentInList(filesName)); + } + + public verifyAttachmentInList(filesName: string): void { + exist(this.attachmentContainer.getList().getItem(filesName).getRoot()); + } + + public verifyAttachmentNotInList(filesName: string): void { + notExist(this.attachmentContainer.getList().getItem(filesName).getRoot()); + } + + public verifyAttachmentDownload(fileName: string): void { + exist(readFileFromDownloads(fileName)); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/helper/kommentar/kommentar.executor.ts b/alfa-client/apps/alfa-e2e/src/helper/kommentar/kommentar.executor.ts new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/alfa-client/apps/alfa-e2e/src/helper/wiedervorlage/wiedervorlage.helper.ts b/alfa-client/apps/alfa-e2e/src/helper/wiedervorlage/wiedervorlage.helper.ts new file mode 100644 index 0000000000000000000000000000000000000000..2c6c96e50c79a44ee3d6a771d16e5a74fb3bd1a5 --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/wiedervorlage/wiedervorlage.helper.ts @@ -0,0 +1,13 @@ +import { E2EWiedervorlageNavigator } from './wiedervorlage.navigator'; + +export class E2EWiedervorlageHelper { + private navigator: E2EWiedervorlageNavigator = new E2EWiedervorlageNavigator(); + + public openWiedervorlage(betreff: string): void { + this.navigator.openWiedervorlage(betreff); + } + + public openNewWiedervorlage(): void { + this.navigator.openNewWiedervorlage(); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/helper/wiedervorlage/wiedervorlage.navigator.ts b/alfa-client/apps/alfa-e2e/src/helper/wiedervorlage/wiedervorlage.navigator.ts new file mode 100644 index 0000000000000000000000000000000000000000..42fe2c26a02ce0b3518c7bcd0f39aabaf9a25edd --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/wiedervorlage/wiedervorlage.navigator.ts @@ -0,0 +1,26 @@ +import { WiedervorlageInVorgangE2EComponent } from '../../components/wiedervorlage/wiedervorlage-in-vorgang.e2e.component'; +import { WiedervorlagenInVorgangE2EComponent } from '../../components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component'; +import { VorgangPage } from '../../page-objects/vorgang.po'; +import { WiedervorlagePage } from '../../page-objects/wiedervorlage.po'; +import { exist } from '../../support/cypress.util'; + +export class E2EWiedervorlageNavigator { + private vorgangPage: VorgangPage = new VorgangPage(); + private wiedervorlagenInVorgang: WiedervorlagenInVorgangE2EComponent = this.vorgangPage.getWiedervorlagenContainer(); + + private wiedervorlagePage: WiedervorlagePage = new WiedervorlagePage(); + + public openWiedervorlage(betreff: string): void { + const wiedervorlageInVorgang: WiedervorlageInVorgangE2EComponent = this.wiedervorlagenInVorgang.getWiedervorlage(betreff); + exist(wiedervorlageInVorgang.getRoot()); + exist(wiedervorlageInVorgang.getLink()); + wiedervorlageInVorgang.getLink().click(); + exist(this.wiedervorlagePage.getHeadline()); + } + + public openNewWiedervorlage(): void { + exist(this.wiedervorlagenInVorgang.getCreateWiedervorlageButton()); + this.wiedervorlagenInVorgang.getCreateWiedervorlageButton().click(); + exist(this.wiedervorlagePage.getHeadline()); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts b/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts index caa0e2872c6ffb9820602075dd194c072b8b6008..6a1d1b397b3e0a9eb91362cd0220230b67a5db14 100644 --- a/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts +++ b/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts @@ -22,7 +22,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { AttachmentContainerE2EComponent } from '../components/attachment/attachment.e2e.component'; -import { KommentareInVorgangE2EComponent } from '../components/kommentar/kommentar-list.e2e.component'; +import { KommentarListInVorgangE2EComponent } from '../components/kommentar/kommentar-list.e2e.component'; import { PostfachMailFormularE2EComponent } from '../components/postfach/postfach-mail-formular.e2e.component'; import { PostfachMailE2EComponent } from '../components/postfach/postfach-mail.e2e.component'; import { FixedDialogE2EComponent } from '../components/ui/fixed-dialog.e2e.component'; @@ -40,42 +40,29 @@ import { VorgangZusammenarbeitE2EComponent } from '../components/vorgang/vorgang import { WiedervorlagenInVorgangE2EComponent } from '../components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component'; export class VorgangPage { - private readonly subnavigation: VorgangSubnavigationE2EComponent = - new VorgangSubnavigationE2EComponent(); - private readonly vorgangDetailHeader: VorgangDetailHeaderE2EComponent = - new VorgangDetailHeaderE2EComponent(); - private readonly formularDatenContainer: VorgangFormularDatenE2EComponent = - new VorgangFormularDatenE2EComponent(); - private readonly formularButtons: VorgangFormularButtonsE2EComponent = - new VorgangFormularButtonsE2EComponent(); + private readonly subnavigation: VorgangSubnavigationE2EComponent = new VorgangSubnavigationE2EComponent(); + private readonly vorgangDetailHeader: VorgangDetailHeaderE2EComponent = new VorgangDetailHeaderE2EComponent(); + private readonly formularDatenContainer: VorgangFormularDatenE2EComponent = new VorgangFormularDatenE2EComponent(); + private readonly formularButtons: VorgangFormularButtonsE2EComponent = new VorgangFormularButtonsE2EComponent(); private readonly moreMenu: VorgangMoreMenuE2EComponent = new VorgangMoreMenuE2EComponent(); - private readonly aktenzeichenEditor: VorgangAktenzeichenEditE2EComponent = - new VorgangAktenzeichenEditE2EComponent(); - private readonly bescheidWizard: VorgangBescheidWizardE2EComponent = - new VorgangBescheidWizardE2EComponent(); + private readonly aktenzeichenEditor: VorgangAktenzeichenEditE2EComponent = new VorgangAktenzeichenEditE2EComponent(); + private readonly bescheidWizard: VorgangBescheidWizardE2EComponent = new VorgangBescheidWizardE2EComponent(); private readonly bescheide: VorgangBescheideE2EComponent = new VorgangBescheideE2EComponent(); - private readonly wiedervorlagen: WiedervorlagenInVorgangE2EComponent = - new WiedervorlagenInVorgangE2EComponent(); - private readonly forwardingContainer: VorgangForwardingE2EComponent = - new VorgangForwardingE2EComponent(); - private readonly attachmentContainer: AttachmentContainerE2EComponent = - new AttachmentContainerE2EComponent(); - private readonly kommentarContainer: KommentareInVorgangE2EComponent = - new KommentareInVorgangE2EComponent(); + private readonly wiedervorlagen: WiedervorlagenInVorgangE2EComponent = new WiedervorlagenInVorgangE2EComponent(); + private readonly forwardingContainer: VorgangForwardingE2EComponent = new VorgangForwardingE2EComponent(); + private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent(); + private readonly kommentarContainer: KommentarListInVorgangE2EComponent = new KommentarListInVorgangE2EComponent(); private readonly postfachMailContainer: PostfachMailE2EComponent = new PostfachMailE2EComponent(); - private readonly antragstellerContainer: AntragstellerE2EComponent = - new AntragstellerE2EComponent(); - private readonly zusammenArbeitContainer: VorgangZusammenarbeitE2EComponent = - new VorgangZusammenarbeitE2EComponent(); + private readonly antragstellerContainer: AntragstellerE2EComponent = new AntragstellerE2EComponent(); + private readonly zusammenArbeitContainer: VorgangZusammenarbeitE2EComponent = new VorgangZusammenarbeitE2EComponent(); private readonly fixedDialog: FixedDialogE2EComponent = new FixedDialogE2EComponent(); - private readonly postfachMailFormular: PostfachMailFormularE2EComponent = - new PostfachMailFormularE2EComponent(); + private readonly postfachMailFormular: PostfachMailFormularE2EComponent = new PostfachMailFormularE2EComponent(); private readonly locatorSpinner: string = 'spinner'; private readonly locatorProgressBar: string = 'progress-bar'; - public getKommentarContainer(): KommentareInVorgangE2EComponent { + public getKommentarContainer(): KommentarListInVorgangE2EComponent { return this.kommentarContainer; } diff --git a/alfa-client/apps/alfa-e2e/src/page-objects/wiedervorlage.po.ts b/alfa-client/apps/alfa-e2e/src/page-objects/wiedervorlage.po.ts index ce5c00e85ce61eb22109881bf26ab4bf3f121b02..cf253b1d3e54ade65ed5711a9b689e88b2640baf 100644 --- a/alfa-client/apps/alfa-e2e/src/page-objects/wiedervorlage.po.ts +++ b/alfa-client/apps/alfa-e2e/src/page-objects/wiedervorlage.po.ts @@ -25,20 +25,24 @@ import { WiedervorlageE2EComponent } from '../components/wiedervorlage/wiedervor import { WiedervorlageSubnavigationE2EComponent } from '../components/wiedervorlage/wiedervorlage-subnavigation'; export class WiedervorlagePage { - private readonly subnavigation: WiedervorlageSubnavigationE2EComponent = - new WiedervorlageSubnavigationE2EComponent(); - private readonly wiedervorlageContainer: WiedervorlageE2EComponent = - new WiedervorlageE2EComponent(); - private readonly locatorWiedervorlagePage: string = 'wiedervorlage-page'; + private readonly root: string = 'wiedervorlage-page'; - public getRoot() { - return cy.getTestElement(this.locatorWiedervorlagePage); + private readonly subnavigation: WiedervorlageSubnavigationE2EComponent = new WiedervorlageSubnavigationE2EComponent(); + private readonly headline: string = 'wiedervorlage-headline'; + private readonly wiedervorlageContainer: WiedervorlageE2EComponent = new WiedervorlageE2EComponent(); + + public getRoot(): Cypress.Chainable<Element> { + return cy.getTestElement(this.root); } public getSubnavigation(): WiedervorlageSubnavigationE2EComponent { return this.subnavigation; } + public getHeadline(): Cypress.Chainable<Element> { + return cy.getTestElement(this.headline); + } + public getWiedervorlageContainer(): WiedervorlageE2EComponent { return this.wiedervorlageContainer; } diff --git a/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts b/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts index 9c2bd2f7944d04ee78e668cf89f1cbe9c396689f..b4f477e2422f3bd0ea391d7d3259c29bd4b2a8a6 100644 --- a/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts +++ b/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts @@ -134,11 +134,12 @@ export function initUsermanagerData(data: UsermanagerUserE2E[]): void { cy.task(CypressTasks.INIT_USERMANAGER_DATA, { collection: MongoCollections.USER, data }); } -export function dropCollections() { +export function dropCollections(): void { cy.task(CypressTasks.DROP_COLLECTIONS, [ MongoCollections.COMMAND, MongoCollections.VORGANG, MongoCollections.VORGANG_ATTACHED_ITEM, + MongoCollections.OZG_CLOUD_FILE, MongoCollections.FS_FILES, MongoCollections.FS_CHUNKS, ]); diff --git a/alfa-client/apps/alfa-e2e/src/support/data.util.ts b/alfa-client/apps/alfa-e2e/src/support/data.util.ts index 47f84cd7927ba964684b1de514a846d866d188af..46c335ab573be9cd33c24970ebd37cce56f1da15 100644 --- a/alfa-client/apps/alfa-e2e/src/support/data.util.ts +++ b/alfa-client/apps/alfa-e2e/src/support/data.util.ts @@ -36,10 +36,13 @@ export const ORGANISATIONSEINHEITEN_ID_FOR_ADELHEIT = '10363455'; export const ORGANISATIONSEINHEITEN_ID_FOR_SABINE = '9030229'; export const ORGANISATIONSEINHEITEN_ID_FOR_BEATE = '12345678'; +//TODO Rename = nicht fachlich bezogen bspw. TEST_FILE_WITH_CONTENT_5_MB anstelle von "invalid" oder "big" export const TEST_FILE_BESCHEID_VALID: string = 'Bescheid_valid.pdf'; export const TEST_FILE_BESCHEID_BIG: string = 'Bescheid_5mb.pdf'; export const TEST_FILE_BESCHEID_ANHANG_VALID: string = 'Anhang_valid.pdf'; export const TEST_FILE_BESCHEID_ANHANG_BIG: string = 'Anhang_5mb.pdf'; +// + export const TEST_FILE_JPG: string = 'small_jpg.jpg'; export const TEST_FILE_JPEG: string = 'small_jpeg.jpeg'; export const TEST_FILE_PNG: string = 'small_png.png'; diff --git a/alfa-client/apps/alfa-e2e/src/support/file-upload.ts b/alfa-client/apps/alfa-e2e/src/support/file-upload.ts index eb8b69908acb11159d4c8b35d1ee8471bc4b9637..d01cc9a98299f7766f316a5b84bda890e4c7e3ba 100644 --- a/alfa-client/apps/alfa-e2e/src/support/file-upload.ts +++ b/alfa-client/apps/alfa-e2e/src/support/file-upload.ts @@ -23,10 +23,14 @@ */ import 'cypress-file-upload'; -export function uploadFile(inputElement: any, fileName: string): void { - inputElement.attachFile(fileName); +export function uploadFile(inputElement: Cypress.Chainable<HTMLElement>, fileName: string): void { + uploadFiles(inputElement, [fileName]); } -export function uploadEmptyFile(inputElement: any, fileName: string): void { +export function uploadFiles(inputElement: Cypress.Chainable<HTMLElement>, fileNames: string[]): void { + inputElement.attachFile(fileNames); +} + +export function uploadEmptyFile(inputElement: Cypress.Chainable<HTMLElement>, fileName: string): void { inputElement.attachFile(fileName, { allowEmpty: true }); } diff --git a/alfa-client/libs/binary-file/src/lib/download-archive-file-button-container/download-archive-file-button-container.component.html b/alfa-client/libs/binary-file/src/lib/download-archive-file-button-container/download-archive-file-button-container.component.html index b4f57dff63600c9090de98d2646272bad58e06f4..9434cdd4a3edbaa2d3adb37bc41b54d585dc1b81 100644 --- a/alfa-client/libs/binary-file/src/lib/download-archive-file-button-container/download-archive-file-button-container.component.html +++ b/alfa-client/libs/binary-file/src/lib/download-archive-file-button-container/download-archive-file-button-container.component.html @@ -24,6 +24,7 @@ --> <ods-download-button + dataTestId="download-archive-file-button" [stateResource]="downloadArchiveInProgress$ | async" data-test-class="download-archive" (click)="downloadArchive()" diff --git a/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.html b/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.html index 4024dc2de95e58d010447f113834a2b1b0387252..538932cf346eea42688fc28259a330b1d18fb552 100644 --- a/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.html +++ b/alfa-client/libs/binary-file/src/lib/multi-file-upload-editor/multi-file-upload-editor.component.html @@ -6,6 +6,7 @@ [isLoading]="isUploadInProgress$ | async" [variant]="uploadButtonVariant" data-test-id="binary-file-upload" + dataTestId="multi-file-upload-button" > <ods-spinner-icon spinner size="medium" /> <ods-attachment-icon icon size="medium" /> diff --git a/alfa-client/libs/binary-file/src/lib/vertical-binary-file-list/vertical-binary-file-list.component.html b/alfa-client/libs/binary-file/src/lib/vertical-binary-file-list/vertical-binary-file-list.component.html index b8b8d9e4c1d3addfff29d35af5e786923e194454..2649c1cdb731e0b5997df29d904241f569cf544d 100644 --- a/alfa-client/libs/binary-file/src/lib/vertical-binary-file-list/vertical-binary-file-list.component.html +++ b/alfa-client/libs/binary-file/src/lib/vertical-binary-file-list/vertical-binary-file-list.component.html @@ -23,28 +23,18 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<ozgcloud-spinner - *ngIf="binaryFileListStateResource.resource" - [stateResource]="binaryFileListStateResource" -> +<ozgcloud-spinner *ngIf="binaryFileListStateResource.resource" [stateResource]="binaryFileListStateResource"> <ods-attachment-wrapper data-test-id="file-list"> - <ods-attachment-header - [title]="title" - *ngIf="title || archiveDownloadUri" - data-test-id="file-list-header" - > + <ods-attachment-header [title]="title" *ngIf="title || archiveDownloadUri" data-test-id="file-list-header"> <alfa-download-archive-file-button-container *ngIf="archiveDownloadUri" - data-test-class="download-archive-file-button" + data-test-id="download-archive-file-button-container" [downloadUri]="archiveDownloadUri" action-buttons ></alfa-download-archive-file-button-container ></ods-attachment-header> <ng-container - *ngFor=" - let binaryFileResource of binaryFileListStateResource.resource - | toEmbeddedResources: fileListRel.FILE_LIST - " + *ngFor="let binaryFileResource of binaryFileListStateResource.resource | toEmbeddedResources: fileListRel.FILE_LIST" > <alfa-binary-file2-container [file]="binaryFileResource" diff --git a/alfa-client/libs/binary-file/src/lib/vertical-binary-file-list/vertical-binary-file-list.component.spec.ts b/alfa-client/libs/binary-file/src/lib/vertical-binary-file-list/vertical-binary-file-list.component.spec.ts index 93be7c71dab2c1f665423770e2c877a73e12c869..500c35cf858960e3a27674d2bf53ca9999555ca5 100644 --- a/alfa-client/libs/binary-file/src/lib/vertical-binary-file-list/vertical-binary-file-list.component.spec.ts +++ b/alfa-client/libs/binary-file/src/lib/vertical-binary-file-list/vertical-binary-file-list.component.spec.ts @@ -23,21 +23,14 @@ */ import { BinaryFileResource } from '@alfa-client/binary-file-shared'; import { ToEmbeddedResourcesPipe, createStateResource } from '@alfa-client/tech-shared'; -import { - existsAsHtmlElement, - getMockComponent, - notExistsAsHtmlElement, -} from '@alfa-client/test-utils'; +import { existsAsHtmlElement, getMockComponent, notExistsAsHtmlElement } from '@alfa-client/test-utils'; import { SpinnerComponent } from '@alfa-client/ui'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { faker } from '@faker-js/faker'; import { ResourceUri } from '@ngxp/rest'; import { AttachmentHeaderComponent, AttachmentWrapperComponent } from '@ods/system'; -import { - createBinaryFileListResource, - createBinaryFileResource, -} from 'libs/binary-file-shared/test/binary-file'; -import { getDataTestClassOf, getDataTestIdOf } from 'libs/tech-shared/test/data-test'; +import { createBinaryFileListResource, createBinaryFileResource } from 'libs/binary-file-shared/test/binary-file'; +import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; import { MockComponent } from 'ng-mocks'; import { BinaryFile2ContainerComponent } from '../binary-file2-container/binary-file2-container.component'; import { DownloadArchiveFileButtonContainerComponent } from '../download-archive-file-button-container/download-archive-file-button-container.component'; @@ -47,7 +40,7 @@ describe('VerticalBinaryFileListComponent', () => { let component: VerticalBinaryFileListComponent; let fixture: ComponentFixture<VerticalBinaryFileListComponent>; - const downloadArchiveFileButton: string = getDataTestClassOf('download-archive-file-button'); + const downloadArchiveFileButton: string = getDataTestIdOf('download-archive-file-button-container'); const fileListHeader: string = getDataTestIdOf('file-list-header'); const binaryFile: BinaryFileResource = createBinaryFileResource(); @@ -69,9 +62,7 @@ describe('VerticalBinaryFileListComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(VerticalBinaryFileListComponent); component = fixture.componentInstance; - component.binaryFileListStateResource = createStateResource( - createBinaryFileListResource([binaryFile]), - ); + component.binaryFileListStateResource = createStateResource(createBinaryFileListResource([binaryFile])); fixture.detectChanges(); }); @@ -82,28 +73,19 @@ describe('VerticalBinaryFileListComponent', () => { describe('binary file component', () => { describe('should be called with', () => { it('file', () => { - const comp: BinaryFile2ContainerComponent = getMockComponent( - fixture, - BinaryFile2ContainerComponent, - ); + const comp: BinaryFile2ContainerComponent = getMockComponent(fixture, BinaryFile2ContainerComponent); expect(comp.file).toBe(binaryFile); }); it('deletable', () => { - const comp: BinaryFile2ContainerComponent = getMockComponent( - fixture, - BinaryFile2ContainerComponent, - ); + const comp: BinaryFile2ContainerComponent = getMockComponent(fixture, BinaryFile2ContainerComponent); expect(comp.deletable).toBe(component.deletable); }); it('downloadFileNamePrefix', () => { - const comp: BinaryFile2ContainerComponent = getMockComponent( - fixture, - BinaryFile2ContainerComponent, - ); + const comp: BinaryFile2ContainerComponent = getMockComponent(fixture, BinaryFile2ContainerComponent); expect(comp.downloadFileNamePrefix).toBe(component.downloadFileNamePrefix); }); diff --git a/alfa-client/libs/design-component/src/lib/download-button/download-button.component.ts b/alfa-client/libs/design-component/src/lib/download-button/download-button.component.ts index 7c479ec1713ce6efca5777e04880575c623ba23d..14473d08c588ba1a2ee9d63a240cb30ca451d48b 100644 --- a/alfa-client/libs/design-component/src/lib/download-button/download-button.component.ts +++ b/alfa-client/libs/design-component/src/lib/download-button/download-button.component.ts @@ -46,7 +46,7 @@ type IconVariants = VariantProps<typeof iconVariants>; </ods-button>`, }) export class DownloadButtonComponent { - @Input() dataTestId: string = ''; + @Input({ required: true }) dataTestId: string; @Input() size: IconVariants['size'] = 'small'; @Input() set stateResource(resource: StateResource<CommandResource>) { this.isLoading = resource.loading || resource.reload; diff --git a/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html index ff08ce18e4ad8cc6037b84833bd941f375a6da0f..e3807c40af21c86b0026c201ed9cb12525aa263b 100644 --- a/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html +++ b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html @@ -35,6 +35,7 @@ [attr.data-test-id]="(label | convertForDataTest) + '-file-upload-button'" [isLoading]="uploadInProgress.loading" class="relative w-full max-w-72" + dataTestId="file-upload-editor" > <ods-spinner-icon spinner size="medium" /> <ods-attachment-icon icon size="medium" /> diff --git a/alfa-client/libs/design-component/src/lib/form/single-file-upload-editor/single-file-upload-editor.component.html b/alfa-client/libs/design-component/src/lib/form/single-file-upload-editor/single-file-upload-editor.component.html index 837b069ad149e2e7e2eb08305e54e8ab74df16f5..409101e9b6320310d915e0364f8da49bf82a7fda 100644 --- a/alfa-client/libs/design-component/src/lib/form/single-file-upload-editor/single-file-upload-editor.component.html +++ b/alfa-client/libs/design-component/src/lib/form/single-file-upload-editor/single-file-upload-editor.component.html @@ -29,6 +29,7 @@ [isLoading]="uploadInProgress" [accept]="accept" [attr.data-test-id]="(label | convertForDataTest) + '-single-file-upload-button'" + dataTestId="single-file-upload-button" > <ng-content icon select="[icon]"></ng-content> <ng-content text select="[text]"></ng-content> diff --git a/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.html b/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.html index b65b88d5b02c74982b872549c6d87aeccdf1644b..2e4573ac9c648f820f392f51dc8e96c237f74fb5 100644 --- a/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.html +++ b/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.html @@ -32,7 +32,7 @@ (click)="resetInput()" [disabled]="isLoading" [multiple]="multi" - [attr.data-test-id]="(id | convertForDataTest) + '-file-upload-input'" + [attr.data-test-id]="dataTestId" /> <label [for]="id" [ngClass]="uploadButtonVariants({ variant })" role="button"> @if (isLoading) { diff --git a/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.spec.ts b/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.spec.ts index 54b7d3b7dde522ce018e0efae8b4210f6e2e2cff..bc63bfe1e214deec130fcd1f487045d14a68ad79 100644 --- a/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.spec.ts +++ b/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.spec.ts @@ -21,7 +21,6 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { ConvertForDataTestPipe } from '@alfa-client/tech-shared'; import { getElementFromFixture } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { faker } from '@faker-js/faker'; @@ -34,16 +33,18 @@ describe('FileUploadButtonComponent', () => { let fixture: ComponentFixture<FileUploadButtonComponent>; const labelText: string = faker.word.noun(); - const inputTestClass: string = getDataTestIdOf(labelText + '-file-upload-input'); + const dataTestId: string = 'dummyDataTestId'; + const input: string = getDataTestIdOf(dataTestId); beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [FileUploadButtonComponent, ConvertForDataTestPipe], + imports: [FileUploadButtonComponent], }).compileComponents(); fixture = TestBed.createComponent(FileUploadButtonComponent); component = fixture.componentInstance; component.id = labelText; + component.dataTestId = dataTestId; fixture.detectChanges(); }); @@ -54,7 +55,7 @@ describe('FileUploadButtonComponent', () => { describe('click at file input', () => { it('should call resetInput()', () => { component.resetInput = jest.fn(); - const fileInput = getElementFromFixture(fixture, inputTestClass); + const fileInput = getElementFromFixture(fixture, input); fileInput.click(); fixture.detectChanges(); @@ -68,7 +69,7 @@ describe('FileUploadButtonComponent', () => { component.multi = true; fixture.detectChanges(); - const inputElement: HTMLInputElement = getElementFromFixture(fixture, inputTestClass); + const inputElement: HTMLInputElement = getElementFromFixture(fixture, input); expect(inputElement.multiple).toEqual(component.multi); }); diff --git a/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.ts b/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.ts index b5048be11b1b7e67eaf8c077e3d4cd0caab66388..9f06d3864e0c7767b368509d49449e68d18ac0a0 100644 --- a/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.ts +++ b/alfa-client/libs/design-system/src/lib/form/file-upload-button/file-upload-button.component.ts @@ -59,6 +59,7 @@ export class FileUploadButtonComponent { @Input() accept: string = '*/*'; @Input() multi: boolean = false; @Input() variant: UploadButtonVariants['variant']; + @Input({ required: true }) dataTestId: string; @ViewChild('inputElement') inputElement: ElementRef = new ElementRef({}); diff --git a/alfa-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang/kommentar-list-item-in-vorgang/kommentar-list-item-in-vorgang.component.html b/alfa-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang/kommentar-list-item-in-vorgang/kommentar-list-item-in-vorgang.component.html index 78ac673c8e3c3a2b871f8f0af621b8bf5b2d09e3..2bace6cd981024e6e589d527c6af06a0a1c572a1 100644 --- a/alfa-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang/kommentar-list-item-in-vorgang/kommentar-list-item-in-vorgang.component.html +++ b/alfa-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang/kommentar-list-item-in-vorgang/kommentar-list-item-in-vorgang.component.html @@ -32,7 +32,7 @@ [kommentar]="kommentar" data-test-class="kommentar-created-by" ></alfa-user-profile-in-kommentar-container> - <span data-test-id="kommentar-created-at" class="date text-sm">{{ + <span data-test-class="kommentar-created-at" class="date text-sm">{{ kommentar.createdAt | formatDateWithTimePipe: false }}</span> </div> diff --git a/alfa-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-page.component.html b/alfa-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-page.component.html index 8f0c3d3c5dfb5e59a191e8e18c725e098376b2fe..99cc6d70f2db39cd1ab3fb16016af9f8f07288ac 100644 --- a/alfa-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-page.component.html +++ b/alfa-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-page.component.html @@ -24,31 +24,19 @@ --> <ozgcloud-spinner [stateResource]="wiedervorlageStateResource"> - <ozgcloud-subnavigation - data-test-id="subnavigation-wiedervorlage" - class="mat-typography mat-app-background" - > - <alfa-wiedervorlage-action-buttons [wiedervorlage]="wiedervorlageStateResource.resource"> - </alfa-wiedervorlage-action-buttons> + <ozgcloud-subnavigation data-test-id="subnavigation-wiedervorlage" class="mat-typography mat-app-background"> + <alfa-wiedervorlage-action-buttons [wiedervorlage]="wiedervorlageStateResource.resource"> </alfa-wiedervorlage-action-buttons> </ozgcloud-subnavigation> <div class="l-scroll-area--full"> <div class="wrapper grow"> - <h1 class="text-lg font-medium">Wiedervorlage</h1> + <h1 class="text-lg font-medium" data-test-id="wiedervorlage-headline">Wiedervorlage</h1> <alfa-wiedervorlage-breadcrumb-container [wiedervorlage]="wiedervorlageStateResource.resource" ></alfa-wiedervorlage-breadcrumb-container> - <alfa-wiedervorlage-status - class="status" - [wiedervorlageResource]="wiedervorlageStateResource.resource" - [diameter]="16" - > - <span>{{ - wiedervorlageStateResource.resource && wiedervorlageStateResource.resource.done ? - 'erledigt' - : 'offen' - }}</span> + <alfa-wiedervorlage-status class="status" [wiedervorlageResource]="wiedervorlageStateResource.resource" [diameter]="16"> + <span>{{ wiedervorlageStateResource.resource && wiedervorlageStateResource.resource.done ? 'erledigt' : 'offen' }}</span> </alfa-wiedervorlage-status> <alfa-wiedervorlage-form