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 e6a92b958deb0a0f2947b27bbb14283d2bee379d..ef253d56e93bd77ac2f64a0bda7778f3474b07a4 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
@@ -106,6 +106,8 @@ describe('Bescheid History', () => {
         vorgangFormularButtons.getBescheidenButton().click();
         enterWith(bescheidWizard.getDateInput(), getAdjustedDateGerman(-1));
         bescheidWizard.getWeiterButton().click();
+        waitForSpinnerToDisappear();
+
         uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID);
         notExist(bescheidWizard.getBescheidUploadSpinner());
         uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID);
@@ -116,6 +118,7 @@ describe('Bescheid History', () => {
         bescheidWizard.getSaveButton().click();
         bescheidWizard.getConfirmAndSaveButton().click();
         waitForSpinnerToDisappear();
+
         vorgangDatenFormular.getHistorieTab().click();
 
         const historieItem: VorgangFormularDatenHistorieItemE2EComponent = vorgangDatenFormular.getHistorieItemByIndex(0);
@@ -143,6 +146,8 @@ describe('Bescheid History', () => {
         vorgangFormularButtons.getBescheidenButton().click();
         enterWith(bescheidWizard.getDateInput(), getAdjustedDateGerman(-1));
         bescheidWizard.getWeiterButton().click();
+        waitForSpinnerToDisappear();
+
         uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID);
         notExist(bescheidWizard.getBescheidUploadSpinner());
         bescheidWizard.getWeiterButton().click();
@@ -151,6 +156,7 @@ describe('Bescheid History', () => {
         bescheidWizard.getSaveButton().click();
         bescheidWizard.getConfirmAndSaveButton().click();
         waitForSpinnerToDisappear();
+
         vorgangDatenFormular.getHistorieTab().click();
 
         const historieItem: VorgangFormularDatenHistorieItemE2EComponent = vorgangDatenFormular.getHistorieItemByIndex(0);
@@ -174,6 +180,8 @@ describe('Bescheid History', () => {
         bescheidWizard.getAbgelehntButton().click();
         enterWith(bescheidWizard.getDateInput(), getAdjustedDateGerman(1));
         bescheidWizard.getWeiterButton().click();
+        waitForSpinnerToDisappear();
+
         uploadFile(bescheidWizard.getUploadBescheidButton(), TEST_FILE_BESCHEID_VALID);
         notExist(bescheidWizard.getBescheidUploadSpinner());
         uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID);
@@ -181,6 +189,8 @@ describe('Bescheid History', () => {
         uploadFile(bescheidWizard.getUploadAttachmentButton(), TEST_FILE_BESCHEID_ANHANG_VALID);
         notExist(bescheidWizard.getAttachmentUploadSpinner());
         bescheidWizard.getWeiterButton().click();
+        waitForSpinnerToDisappear();
+
         bescheidWizard.getSendButton().click();
         exist(bescheidWizard.getSendenSpinner());
         notExist(bescheidWizard.getSendenSpinner());
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 e6c7a90ef2a6e1f91f94d7ef31b83235732aca8c..ddc9cebd902de1645badf90742ae43a258b14d16 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
@@ -99,9 +99,9 @@ describe('Bescheid speichern', () => {
 
     it('should update Vorgang status after saving', () => {
       bescheidWizard.getConfirmAndSaveButton().click();
-      notExist(bescheidWizard.getRoot());
-
       waitForSpinnerToDisappear();
+
+      notExist(bescheidWizard.getRoot());
       haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.BESCHIEDEN]);
     });
   });
diff --git a/alfa-client/libs/design-system/src/lib/button/button.component.ts b/alfa-client/libs/design-system/src/lib/button/button.component.ts
index 15a9b7efdc261b462f3dade0f93b2a6902e36507..f74b535d27d39676f234aa058e837232cff37aba 100644
--- a/alfa-client/libs/design-system/src/lib/button/button.component.ts
+++ b/alfa-client/libs/design-system/src/lib/button/button.component.ts
@@ -87,7 +87,7 @@ export type ButtonVariants = VariantProps<typeof buttonVariants>;
   selector: 'ods-button',
   standalone: true,
   imports: [CommonModule, SpinnerIconComponent],
-  template: `<button
+  template: ` <button
     type="button"
     [ngClass]="buttonVariants({ size, variant, disabled, destructive })"
     [disabled]="isDisabled"
@@ -97,7 +97,7 @@ export type ButtonVariants = VariantProps<typeof buttonVariants>;
     (click)="clickEmitter.emit()"
   >
     <ng-content *ngIf="!isLoading" select="[icon]"></ng-content>
-    <ods-spinner-icon *ngIf="isLoading" [size]="spinnerSize"></ods-spinner-icon>
+    <ods-spinner-icon *ngIf="isLoading" [size]="spinnerSize" data-test-class="spinner"></ods-spinner-icon>
     <div *ngIf="text" class="flex-grow">{{ text }}</div>
   </button>`,
 })