From c54e8b20b21ebd3d34278cfb2ce89af3b6aa6097 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 22 Jul 2024 19:41:02 +0200
Subject: [PATCH] fix-e2e: Fix more cy.get() cases

---
 .../components/attachment/attachment.e2e.component.ts |  8 ++++----
 .../vorgang-detail/vorgang-loeschen-anfordern.cy.ts   |  8 +++++++-
 .../loesch-anforderung/loeschen-anfordern.cy.ts       | 11 ++++++++++-
 .../vorgang-anhang/vorgang-anhang-herunterladen.cy.ts |  2 +-
 alfa-client/apps/alfa-e2e/src/support/commands.ts     |  4 +++-
 .../apps/alfa-e2e/src/support/cypress-helper.ts       |  2 +-
 6 files changed, 26 insertions(+), 9 deletions(-)

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 72c76d17bb..c9fa056dfb 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
@@ -48,12 +48,12 @@ export class AttachmentListE2EComponent {
     return new AttachmentE2EItem(fileName);
   }
 
-  public getDownloadAttachmentsButton(parent: any): Cypress.Chainable<JQuery<HTMLElement>> {
-    return cy.get(parent).findTestElementWithClass(this.downloadAttachmentsButton);
+  public getDownloadAttachmentsButton(): Cypress.Chainable<JQuery<HTMLElement>> {
+    return this.getRoot().findTestElementWithClass(this.downloadAttachmentsButton);
   }
 
-  public downloadAttachments(parent: any): Cypress.Chainable<any> {
-    return this.getDownloadAttachmentsButton(parent).click();
+  public downloadAttachments(): Cypress.Chainable<any> {
+    return this.getDownloadAttachmentsButton().click();
   }
 }
 
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-loeschen-anfordern.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-loeschen-anfordern.cy.ts
index 91617d3639..c22d4da4f7 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-loeschen-anfordern.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-loeschen-anfordern.cy.ts
@@ -32,7 +32,7 @@ import {
 } 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 { dropCollections, wait } from '../../../support/cypress-helper';
 import { contains, exist, haveText, notExist } from '../../../support/cypress.util';
 import { loginAsEmil } from '../../../support/user-util';
 import { buildVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util';
@@ -167,6 +167,8 @@ describe('Vorgang löschen anfordern', () => {
 
       it('should show status Abgeschlossen', () => {
         notExist(vorgangPage.getProgressBar());
+        wait(2000, 'Statusänderung flaky');
+        cy.scrollTo(0, -500);
 
         haveText(
           vorgangPage.getVorgangDetailHeader().getStatus(),
@@ -277,6 +279,10 @@ describe('Vorgang löschen anfordern', () => {
       it('should show status Verworfen', () => {
         notExist(vorgangPage.getProgressBar());
 
+        wait(2000, 'Statusänderung im UI nicht schnell genug');
+        cy.scrollTo(0, -500);
+
+        vorgangPage.getVorgangDetailHeader().getStatus();
         haveText(
           vorgangPage.getVorgangDetailHeader().getStatus(),
           vorgangStatusLabelE2E[VorgangStatusE2E.VERWORFEN],
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/loesch-anforderung/loeschen-anfordern.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/loesch-anforderung/loeschen-anfordern.cy.ts
index 6ae63d71c0..6eb2921858 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/loesch-anforderung/loeschen-anfordern.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/loesch-anforderung/loeschen-anfordern.cy.ts
@@ -21,7 +21,7 @@ import {
 } from '../../../model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
-import { dropCollections, visitUrl } from '../../../support/cypress-helper';
+import { dropCollections, visitUrl, wait } from '../../../support/cypress-helper';
 import { contains, exist, haveText, notExist } from '../../../support/cypress.util';
 import { loginAsLudwig, loginAsSabine } from '../../../support/user-util';
 import { buildVorgang, initVorgaenge, initVorgang, objectIds } from '../../../support/vorgang-util';
@@ -161,6 +161,9 @@ describe('Vorgang Löschen anfordern', () => {
         });
 
         it('should have status zu Löschen', () => {
+          wait(2000, 'Statusänderung im UI nicht schnell genug');
+          cy.scrollTo(0, -500);
+
           haveText(
             vorgangPage.getVorgangDetailHeader().getStatus(),
             vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN],
@@ -299,6 +302,9 @@ describe('Vorgang Löschen anfordern', () => {
         it('should show status Abgeschlossen', () => {
           notExist(vorgangPage.getProgressBar());
 
+          wait(2000, 'Statusänderung im UI nicht schnell genug');
+          cy.scrollTo(0, -500);
+
           haveText(
             vorgangPage.getVorgangDetailHeader().getStatus(),
             vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN],
@@ -408,6 +414,9 @@ describe('Vorgang Löschen anfordern', () => {
         it('should show status Verworfen', () => {
           notExist(vorgangPage.getProgressBar());
 
+          wait(2000, 'Statusänderung im UI nicht schnell genug');
+          cy.scrollTo(0, -500);
+
           haveText(
             vorgangPage.getVorgangDetailHeader().getStatus(),
             vorgangStatusLabelE2E[VorgangStatusE2E.VERWORFEN],
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 0d31452e0a..946a0c86da 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
@@ -143,7 +143,7 @@ describe('Vorgang Anhänge', () => {
 
     it('should download attachment zip file', () => {
       deleteDownloadFolder().then(() => {
-        attachmentList.downloadAttachments(vorgangDatenFormular.getRoot());
+        attachmentList.downloadAttachments();
       });
     });
 
diff --git a/alfa-client/apps/alfa-e2e/src/support/commands.ts b/alfa-client/apps/alfa-e2e/src/support/commands.ts
index 84507bff89..180457361a 100644
--- a/alfa-client/apps/alfa-e2e/src/support/commands.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/commands.ts
@@ -91,7 +91,9 @@ Cypress.Commands.add('getTestElement', (selector, ...args) => {
 });
 
 Cypress.Commands.add('getTestElementWithClass', (selector, ...args) => {
-  console.log('Achtung:‚ Potentiell nicht eindeutiges Ergebnis wegen cy.get()');
+  console.log(
+    'Achtung: Potentiell nicht eindeutiges Ergebnis, weil eine data-test-class mit cy.get() von der DOM-Root aus gesucht wird.',
+  );
   return cy.get(`[${DATA_TEST_CLASS}="${selector}"]`, ...args);
 });
 
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 a0e6f18ca0..90c0c0b405 100644
--- a/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts
@@ -182,7 +182,7 @@ export function urlShouldInclude(text: string) {
 export function wait(ms: number, reason = ''): void {
   cy.wait(ms);
   if (reason) {
-    console.log(`Had to wait ${ms} because of: ${reason}`);
+    console.log(`Had to wait ${ms}ms because of: ${reason}`);
   }
 }
 //
-- 
GitLab