From dc1fa1073fb663372b5d9d99a1ce0c04713af85d Mon Sep 17 00:00:00 2001
From: Martin <git@mail.de>
Date: Tue, 4 Mar 2025 21:11:06 +0100
Subject: [PATCH] OZG-5977 adjust tests due to remove specific spinner
 functions

---
 .../attachment/attachment.e2e.component.ts    |  6 ++++
 .../vorgang-anhang-herunterladen.cy.ts        |  2 +-
 .../vorgang-bescheid-abbrechen.cy.ts          |  9 ++---
 ...rgang-bescheid-automatisch-erstellen.cy.ts | 20 +++--------
 .../vorgang-bescheid-historie.cy.ts           | 20 ++++++-----
 .../vorgang-bescheid-nur-speichern.cy.ts      |  4 +--
 .../vorgang-bescheid-senden.cy.ts             | 32 +++++------------
 .../vorgang-bescheid-wizard.cy.ts             |  2 +-
 .../vorgang-dateien-tab.cy.ts                 |  2 +-
 .../vorgang-xdomea-inhalte.cy.ts              | 35 +++++--------------
 ...chive-file-button-container.component.html |  1 +
 .../vertical-binary-file-list.component.html  | 18 +++-------
 ...ertical-binary-file-list.component.spec.ts | 34 +++++-------------
 .../download-button.component.ts              |  2 +-
 14 files changed, 61 insertions(+), 126 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 bf74b37a13..dbcb98b4dc 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
@@ -41,6 +41,8 @@ export class AttachmentContainerE2EComponent {
 export class AttachmentListE2EComponent {
   private readonly locatorRoot: string = 'file-list';
 
+  private readonly downloadArchiveButton: string = 'download-archive-file-button';
+
   public getRoot(): Cypress.Chainable<HTMLElement> {
     return cy.getTestElement(this.locatorRoot);
   }
@@ -52,6 +54,10 @@ export class AttachmentListE2EComponent {
   public getLoadingOrErrorItem(fileName: string): LoadingErrorAttachmentListeItemE2EComponent {
     return new LoadingErrorAttachmentListeItemE2EComponent(fileName);
   }
+
+  public getDownloadArchiveButton(): Cypress.Chainable<HTMLElement> {
+    return this.getRoot().getTestElement(this.downloadArchiveButton);
+  }
 }
 
 export class AttachmentListItemE2EComponent {
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 66ed9474b7..122141ad34 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 7292aa333e..d7f9e7a5a7 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 7cd0331269..1a8e2f6543 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-historie.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-historie.cy.ts
index 36320a61d7..55c6b8b418 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-nur-speichern.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-nur-speichern.cy.ts
index f7c01770b9..54c4965b9f 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 7d5ccdabee..43e23febb7 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 d02307f1af..06378019b3 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 c93d89d9e0..c1b5866cb7 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 1ed205ce1a..ff177ddcff 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/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 b4f57dff63..9434cdd4a3 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/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 b8b8d9e4c1..2649c1cdb7 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 93be7c71da..500c35cf85 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 7c479ec171..14473d08c5 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;
-- 
GitLab