From 7aaf4bee7bd70a646bc003b092b16e5f666a3a27 Mon Sep 17 00:00:00 2001
From: Martin <git@mail.de>
Date: Mon, 17 Mar 2025 15:24:40 +0100
Subject: [PATCH] OZG-7572 add E2E Test; refactor E2E Tests

---
 .../navigation/navigation.e2e.component.ts    |   8 +-
 .../vorgang/vorgang-views.e2e.component.ts    |  47 +-
 .../accessibility/vorgang-list.cy.ts          |   6 +
 .../vorgang-list-views-pages.cy.ts            | 995 +++---------------
 .../alfa-e2e/src/support/cypress-helper.ts    |   4 +
 5 files changed, 205 insertions(+), 855 deletions(-)

diff --git a/alfa-client/apps/alfa-e2e/src/components/navigation/navigation.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/navigation/navigation.e2e.component.ts
index 7e1a233687..5f4b16d3b7 100644
--- a/alfa-client/apps/alfa-e2e/src/components/navigation/navigation.e2e.component.ts
+++ b/alfa-client/apps/alfa-e2e/src/components/navigation/navigation.e2e.component.ts
@@ -28,19 +28,19 @@ export class NavigationE2EComponent {
 
   private readonly locatorRoot: string = 'navigation';
 
-  public getRoot() {
+  public getRoot(): Cypress.Chainable<Element> {
     return cy.getTestElement(this.locatorRoot);
   }
 
-  public getAlleFilter() {
+  public getAlleFilter(): Cypress.Chainable<Element> {
     return cy.getTestElement(this.alleFilterToggleButton);
   }
 
-  public getMeineVorgaengeFilter() {
+  public getMeineVorgaengeFilter(): Cypress.Chainable<Element> {
     return cy.getTestElement(this.meineVorgaengeToggleButton);
   }
 
-  public getUnassignedFilter() {
+  public getUnassignedFilter(): Cypress.Chainable<Element> {
     return cy.getTestElement(this.unassignedToggleButton);
   }
 }
diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component.ts
index 9ada0f2e5a..09585caa4a 100644
--- a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component.ts
+++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component.ts
@@ -23,33 +23,16 @@
  */
 export class VorgangViewsE2EComponent {
   private readonly neuViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Neu');
-  private readonly angenommenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'Angenommen',
-  );
-  private readonly inBearbeitungViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'In_Bearbeitung',
-  );
-  private readonly beschiedenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'Beschieden',
-  );
-  private readonly abgeschlossenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'Abgeschlossen',
-  );
-  private readonly verworfenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'Verworfen',
-  );
-  private readonly zuLoeschenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'Zu_Loschen',
-  );
-  private readonly ungelesenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'Ungelesen',
-  );
-  private readonly wiedervorlagenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'Wiedervorlagen',
-  );
-  private readonly vorgangListViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent(
-    'Vorgangsliste',
-  );
+  private readonly angenommenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Angenommen');
+  private readonly inBearbeitungViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('In_Bearbeitung');
+  private readonly beschiedenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Beschieden');
+  private readonly abgeschlossenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Abgeschlossen');
+  private readonly weitergeleitetViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Weitergeleitet');
+  private readonly verworfenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Verworfen');
+  private readonly zuLoeschenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Zu_Loschen');
+  private readonly ungelesenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Ungelesen');
+  private readonly wiedervorlagenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Wiedervorlagen');
+  private readonly vorgangListViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Vorgangsliste');
   private readonly searchViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent('Suche');
 
   public getNeu(): VorgangViewE2EComponent {
@@ -72,6 +55,10 @@ export class VorgangViewsE2EComponent {
     return this.abgeschlossenViewItem;
   }
 
+  public getWeitergeleitet(): VorgangViewE2EComponent {
+    return this.weitergeleitetViewItem;
+  }
+
   public getVerworfen(): VorgangViewE2EComponent {
     return this.verworfenViewItem;
   }
@@ -108,15 +95,15 @@ export class VorgangViewE2EComponent {
     this.rootId = rootId;
   }
 
-  public getRoot() {
+  public getRoot(): Cypress.Chainable<Element> {
     return cy.getTestElement(`${this.root}${this.rootId}`);
   }
 
-  public getCount() {
+  public getCount(): Cypress.Chainable<Element> {
     return this.getRoot().getTestElement(`${this.count}${this.rootId}`);
   }
 
-  public getButton() {
+  public getButton(): Cypress.Chainable<Element> {
     return this.getRoot().findTestElementWithClass(this.button);
   }
 }
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/accessibility/vorgang-list.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/accessibility/vorgang-list.cy.ts
index a254ba3a09..c92fb955a6 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/accessibility/vorgang-list.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/accessibility/vorgang-list.cy.ts
@@ -161,6 +161,12 @@ describe('VorgangList Page', () => {
         isKeyboardFocused(views.getAbgeschlossen().getButton());
       });
 
+      it('should focus Weitergeleitet view', () => {
+        pressTab();
+
+        isKeyboardFocused(views.getWeitergeleitet().getButton());
+      });
+
       it('should focus Verworfen view', () => {
         pressTab();
 
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-views-pages.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-views-pages.cy.ts
index 2a2316dfc6..d8374f8aa9 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-views-pages.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-views-pages.cy.ts
@@ -23,13 +23,22 @@
  */
 import { NavigationE2EComponent } from 'apps/alfa-e2e/src/components/navigation/navigation.e2e.component';
 import { VorgangListE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-list.e2e.component';
-import { VorgangViewsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component';
+import {
+  VorgangViewE2EComponent,
+  VorgangViewsE2EComponent,
+} from 'apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component';
 import { MainPage, waitForSpinnerToDisappear } from 'apps/alfa-e2e/src/page-objects/main.po';
 import { exist } from 'apps/alfa-e2e/src/support/cypress.util';
 import { Interception } from 'cypress/types/net-stubbing';
 import { HttpMethodE2E } from '../../../model/util';
 import { VorgangE2E, VorgangStatusE2E } from '../../../model/vorgang';
-import { dropCollections, intercept, scrollToWindowBottom, waitOfInterceptor } from '../../../support/cypress-helper';
+import {
+  dropCollections,
+  intercept,
+  scrollToWindowBottom,
+  scrollToWindowTop,
+  waitOfInterceptor,
+} from '../../../support/cypress-helper';
 import { generateIds } from '../../../support/tech.util';
 import { getUserSabineId, initUsermanagerUsers, loginAsSabine } from '../../../support/user-util';
 import { buildVorgang, initVorgaenge } from '../../../support/vorgang-util';
@@ -43,6 +52,7 @@ describe('VorgangList View Pages', () => {
 
   const views: VorgangViewsE2EComponent = mainPage.getViews();
 
+  const VORGANG_NAME_PREFIX: string = 'Vorgang';
   const PAGE_SIZE: number = 100;
   const assignedTo: string = getUserSabineId();
 
@@ -57,6 +67,8 @@ describe('VorgangList View Pages', () => {
       createAssignedVorgaengeWithStatus(VorgangStatusE2E.BESCHIEDEN),
       createVorgaengeWithStatus(VorgangStatusE2E.ABGESCHLOSSEN),
       createAssignedVorgaengeWithStatus(VorgangStatusE2E.ABGESCHLOSSEN),
+      createVorgaengeWithStatus(VorgangStatusE2E.WEITERGELEITET),
+      createAssignedVorgaengeWithStatus(VorgangStatusE2E.WEITERGELEITET),
       createVorgaengeWithStatus(VorgangStatusE2E.VERWORFEN),
       createAssignedVorgaengeWithStatus(VorgangStatusE2E.VERWORFEN),
     );
@@ -73,914 +85,259 @@ describe('VorgangList View Pages', () => {
   });
 
   describe('Neu', () => {
-    const ALLE_NAME_PREFIX: string = 'VorgangNEU_';
-    const MEINE_VORGAENGE_NAME_PREFIX: string = 'VorgangNEUAssigned_';
+    const STATUS: string = VorgangStatusE2E.NEU;
 
-    describe('Alle filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangNeuPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge NEU', () => {
-          views.getNeu().getRoot().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangNeuPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge NEU and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 3', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangNeuPageLink(3)).as(loadPageInterceptor);
-        });
-
-        it('should show page 3 with 10 vorgaenge NEU ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 20);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 80);
-            assert(interception.response.body._embedded.vorgangHeaderList[19].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      function buildVorgangNeuPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&status=NEU`;
-      }
-    });
-
-    describe('Meine Vorgänge filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangNeuAssignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge NEU', () => {
-          navigation.getMeineVorgaengeFilter().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangNeuAssignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge NEU and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, MEINE_VORGAENGE_NAME_PREFIX + 110);
-          });
-        });
-      });
-
-      function buildVorgangNeuAssignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=${assignedTo}&status=NEU`;
-      }
-    });
-
-    describe('Nicht zugewiesen filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangUnassignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge NEU', () => {
-          navigation.getUnassignedFilter().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangUnassignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, ALLE_NAME_PREFIX + 110);
-          });
-        });
-      });
-
-      function buildVorgangUnassignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=&status=NEU`;
-      }
-    });
+    testAlleFilter(STATUS, views.getNeu());
+    testMeineVorgaengeFilter(STATUS);
+    testNichtZugewiesenFilter(STATUS);
   });
 
   describe('Angenommen', () => {
-    const ALLE_NAME_PREFIX: string = 'VorgangANGENOMMEN_';
-    const MEINE_VORGAENGE_NAME_PREFIX: string = 'VorgangANGENOMMENAssigned_';
-
-    describe('Alle filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          navigation.getAlleFilter().click();
-          waitForSpinnerToDisappear();
-          intercept(HttpMethodE2E.GET, buildVorgangAngenommenPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge ANGENOMMEN', () => {
-          views.getAngenommen().getRoot().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangAngenommenPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge ANGENOMMEN and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 3', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangAngenommenPageLink(3)).as(loadPageInterceptor);
-        });
-
-        it('should show page 3 with 10 vorgaenge ANGENOMMEN ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
+    const STATUS: string = VorgangStatusE2E.ANGENOMMEN;
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 20);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 80);
-            assert(interception.response.body._embedded.vorgangHeaderList[19].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      function buildVorgangAngenommenPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&status=ANGENOMMEN`;
-      }
-    });
-
-    describe('Meine Vorgänge filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangAngenommenAssignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge ANGENOMMEN', () => {
-          navigation.getMeineVorgaengeFilter().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangAngenommenAssignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge ANGENOMMEN and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, MEINE_VORGAENGE_NAME_PREFIX + 110);
-          });
-        });
-      });
-
-      function buildVorgangAngenommenAssignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=${assignedTo}&status=ANGENOMMEN`;
-      }
-    });
-
-    describe('Nicht zugewiesen filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangAngenommenUnassignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge ANGENOMMEN', () => {
-          navigation.getUnassignedFilter().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangAngenommenUnassignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, ALLE_NAME_PREFIX + 110);
-          });
-        });
-      });
-
-      function buildVorgangAngenommenUnassignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=&status=ANGENOMMEN`;
-      }
-    });
+    testAlleFilter(STATUS, views.getAngenommen());
+    testMeineVorgaengeFilter(STATUS);
+    testNichtZugewiesenFilter(STATUS);
   });
 
   describe('In Bearbeitung', () => {
-    const ALLE_NAME_PREFIX: string = 'VorgangIN_BEARBEITUNG_';
-    const MEINE_VORGAENGE_NAME_PREFIX: string = 'VorgangIN_BEARBEITUNGAssigned_';
+    const STATUS: string = VorgangStatusE2E.IN_BEARBEITUNG;
 
-    describe('Alle filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          navigation.getAlleFilter().click();
-          waitForSpinnerToDisappear();
-          intercept(HttpMethodE2E.GET, buildVorgangInBearbeitungPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge IN_BEARBEITUNG', () => {
-          views.getInBearbeitung().getRoot().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
+    testAlleFilter(STATUS, views.getInBearbeitung());
+    testMeineVorgaengeFilter(STATUS);
+    testNichtZugewiesenFilter(STATUS);
+  });
 
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
+  describe('Bescheiden', () => {
+    const STATUS: string = VorgangStatusE2E.BESCHIEDEN;
 
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBearbeitungPageLink(2)).as(loadPageInterceptor);
-        });
+    testAlleFilter(STATUS, views.getBeschieden());
+    testMeineVorgaengeFilter(STATUS);
+    testNichtZugewiesenFilter(STATUS);
+  });
 
-        it('should show page 2 with 10 vorgaenge IN_BEARBEITUNG and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
+  describe('Abgeschlossen', () => {
+    const STATUS: string = VorgangStatusE2E.ABGESCHLOSSEN;
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
+    testAlleFilter(STATUS, views.getAbgeschlossen());
+    testMeineVorgaengeFilter(STATUS);
+    testNichtZugewiesenFilter(STATUS);
+  });
 
-      describe('page 3', () => {
-        const loadPageInterceptor: string = 'loadPage';
+  describe('Weitergeleitet', () => {
+    const STATUS: string = VorgangStatusE2E.WEITERGELEITET;
 
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBearbeitungPageLink(3)).as(loadPageInterceptor);
-        });
+    testAlleFilter(STATUS, views.getWeitergeleitet());
+    testMeineVorgaengeFilter(STATUS);
+    testNichtZugewiesenFilter(STATUS);
+  });
 
-        it('should show page 3 with 10 vorgaenge IN_BEARBEITUNG ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
+  describe('Verworfen', () => {
+    const STATUS: string = VorgangStatusE2E.VERWORFEN;
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 20);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 80);
-            assert(interception.response.body._embedded.vorgangHeaderList[19].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
+    testAlleFilter(STATUS, views.getVerworfen());
+    testMeineVorgaengeFilter(STATUS);
+    testNichtZugewiesenFilter(STATUS);
+  });
 
-      function buildVorgangInBearbeitungPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&status=IN_BEARBEITUNG`;
-      }
+  function testAlleFilter(status: string, view: VorgangViewE2EComponent) {
+    describe('Alle filter', () => {
+      testAlleFilterPage1(status, view);
+      testAlleFilterPage2(status);
+      testAlleFilterPage3(status);
     });
+  }
 
-    describe('Meine Vorgänge filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBearbeitungAssignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge IN_BEARBEITUNG', () => {
-          navigation.getMeineVorgaengeFilter().click();
+  function testAlleFilterPage1(status: string, view: VorgangViewE2EComponent): void {
+    describe('page 1', () => {
+      const loadPageInterceptor: string = 'loadPage';
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      beforeEach(() => {
+        navigation.getAlleFilter().click();
+        waitForSpinnerToDisappear();
+        intercept(HttpMethodE2E.GET, buildVorgangStatusPageLink(1, status)).as(loadPageInterceptor);
       });
 
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
+      it(`should show page 1 with 100 vorgaenge ${status}`, () => {
+        view.getRoot().click();
 
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBearbeitungAssignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge IN_BEARBEITUNG and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, MEINE_VORGAENGE_NAME_PREFIX + 110);
-          });
+        waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
+          assert(getVorgangList(interception).length === PAGE_SIZE);
+          assert(getVorgangList(interception)[0].name, VORGANG_NAME_PREFIX + status + 1);
+          assert(getVorgangList(interception)[99].name, VORGANG_NAME_PREFIX + status + PAGE_SIZE);
         });
       });
-
-      function buildVorgangInBearbeitungAssignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=${assignedTo}&status=IN_BEARBEITUNG`;
-      }
     });
+  }
 
-    describe('Nicht zugewiesen filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBearbeitungUnassignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge IN_BEARBEITUNG', () => {
-          navigation.getUnassignedFilter().click();
+  function testAlleFilterPage2(status: string): void {
+    describe('page 2', () => {
+      const loadPageInterceptor: string = 'loadPage';
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      beforeEach(() => {
+        intercept(HttpMethodE2E.GET, buildVorgangStatusPageLink(2, status)).as(loadPageInterceptor);
       });
 
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
+      it(`should show page 2 with 10 vorgaenge ${status} and 90 vorgaenge ASSIGNED on scrolling to bottom`, () => {
+        scrollToWindowBottom();
 
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBearbeitungUnassignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, ALLE_NAME_PREFIX + 110);
-          });
+        waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
+          assert(getVorgangList(interception).length === PAGE_SIZE);
+          assert(getVorgangList(interception)[0].name, VORGANG_NAME_PREFIX + status + 'Assigned_' + 1);
+          assert(getVorgangList(interception)[99].name, VORGANG_NAME_PREFIX + status + 'Assigned_' + PAGE_SIZE);
         });
       });
-
-      function buildVorgangInBearbeitungUnassignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=&status=IN_BEARBEITUNG`;
-      }
     });
-  });
-
-  describe('Beschieden', () => {
-    const ALLE_NAME_PREFIX: string = 'VorgangBESCHIEDEN_';
-    const MEINE_VORGAENGE_NAME_PREFIX: string = 'VorgangBESCHIEDENAssigned_';
-
-    describe('Alle filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          navigation.getAlleFilter().click();
-          waitForSpinnerToDisappear();
-          intercept(HttpMethodE2E.GET, buildVorgangBeschiedenPageLink(1)).as(loadPageInterceptor);
-        });
+  }
 
-        it('should show page 1 with 100 vorgaenge BESCHIEDEN', () => {
-          views.getBeschieden().getRoot().click();
+  function testAlleFilterPage3(status: string): void {
+    describe('page 3', () => {
+      const loadPageInterceptor: string = 'loadPage';
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      beforeEach(() => {
+        intercept(HttpMethodE2E.GET, buildVorgangStatusPageLink(3, status)).as(loadPageInterceptor);
       });
 
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangBeschiedenPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge BESCHIEDEN and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      after(() => {
+        scrollToWindowTop();
       });
 
-      describe('page 3', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangBeschiedenPageLink(3)).as(loadPageInterceptor);
-        });
-
-        it('should show page 3 with 10 vorgaenge BESCHIEDEN ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
+      it(`should show page 3 with 10 vorgaenge ${status} ASSIGNED on scrolling to bottom`, () => {
+        scrollToWindowBottom();
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 20);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 80);
-            assert(interception.response.body._embedded.vorgangHeaderList[19].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
+        waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
+          assert(getVorgangList(interception).length === 20);
+          assert(getVorgangList(interception)[0].name, VORGANG_NAME_PREFIX + status + 'Assigned_' + 80);
+          assert(getVorgangList(interception)[19].name, VORGANG_NAME_PREFIX + status + 'Assigned_' + PAGE_SIZE);
         });
       });
-
-      function buildVorgangBeschiedenPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&status=BESCHIEDEN`;
-      }
     });
+  }
 
-    describe('Meine Vorgänge filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBescheidenAssignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge BESCHIEDEN', () => {
-          navigation.getMeineVorgaengeFilter().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBescheidenAssignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge BESCHIEDEN and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, MEINE_VORGAENGE_NAME_PREFIX + 110);
-          });
-        });
-      });
+  function buildVorgangStatusPageLink(page: number, status: string): string {
+    return `${buildVorgangPageLink(page)}&status=${status}`;
+  }
 
-      function buildVorgangInBescheidenAssignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=${assignedTo}&status=BESCHIEDEN`;
-      }
+  function testMeineVorgaengeFilter(status: string): void {
+    describe('Meine Vorgänge filter', () => {
+      testMeineVorgaengePage1(status);
+      testMeineVorgaengePage2(status);
     });
+  }
 
-    describe('Nicht zugewiesen filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBescheidenUnassignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge BESCHIEDEN', () => {
-          navigation.getUnassignedFilter().click();
+  function testMeineVorgaengePage1(status: string): void {
+    describe('page 1', () => {
+      const loadPageInterceptor: string = 'loadPage';
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      beforeEach(() => {
+        intercept(HttpMethodE2E.GET, buildVorgangInStatusAssignedPageLink(1, status)).as(loadPageInterceptor);
       });
 
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
+      it(`should show page 1 with 100 vorgaenge ${status}`, () => {
+        navigation.getMeineVorgaengeFilter().click();
 
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInBescheidenUnassignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, ALLE_NAME_PREFIX + 110);
-          });
+        waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
+          assert(getVorgangList(interception).length === PAGE_SIZE);
+          assert(getVorgangList(interception)[0].name, VORGANG_NAME_PREFIX + 'Assigned_' + 1);
+          assert(getVorgangList(interception)[99].name, VORGANG_NAME_PREFIX + 'Assigned_' + PAGE_SIZE);
         });
       });
-
-      function buildVorgangInBescheidenUnassignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=&status=BESCHIEDEN`;
-      }
     });
-  });
-
-  describe('Abgeschlossen', () => {
-    const ALLE_NAME_PREFIX: string = 'VorgangABGESCHLOSSEN_';
-    const MEINE_VORGAENGE_NAME_PREFIX: string = 'VorgangABGESCHLOSSENAssigned_';
-
-    describe('Alle filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          navigation.getAlleFilter().click();
-          waitForSpinnerToDisappear();
-          intercept(HttpMethodE2E.GET, buildVorgangAbgeschlossenPageLink(1)).as(loadPageInterceptor);
-        });
+  }
 
-        it('should show page 1 with 100 vorgaenge ABGESCHLOSSEN', () => {
-          views.getAbgeschlossen().getRoot().click();
+  function testMeineVorgaengePage2(status: string): void {
+    describe('page 2', () => {
+      const loadPageInterceptor: string = 'loadPage';
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      beforeEach(() => {
+        intercept(HttpMethodE2E.GET, buildVorgangInStatusAssignedPageLink(2, status)).as(loadPageInterceptor);
       });
 
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangAbgeschlossenPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge ABGESCHLOSSEN and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      after(() => {
+        scrollToWindowTop();
       });
 
-      describe('page 3', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangAbgeschlossenPageLink(3)).as(loadPageInterceptor);
-        });
-
-        it('should show page 3 with 10 vorgaenge ABGESCHLOSSEN ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
+      it(`should show page 2 with 10 vorgaenge ${status} and 90 vorgaenge ASSIGNED on scrolling to bottom`, () => {
+        scrollToWindowBottom();
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 20);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 80);
-            assert(interception.response.body._embedded.vorgangHeaderList[19].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
+        waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
+          assert(getVorgangList(interception).length === 10);
+          assert(getVorgangList(interception)[0].name, VORGANG_NAME_PREFIX + 'Assigned_' + 101);
+          assert(getVorgangList(interception)[9].name, VORGANG_NAME_PREFIX + 'Assigned_' + 110);
         });
       });
-
-      function buildVorgangAbgeschlossenPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&status=ABGESCHLOSSEN`;
-      }
     });
+  }
 
-    describe('Meine Vorgänge filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInAbgeschlossenAssignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge ABGESCHLOSSEN', () => {
-          navigation.getMeineVorgaengeFilter().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInAbgeschlossenAssignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge ABGESCHLOSSEN and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, MEINE_VORGAENGE_NAME_PREFIX + 110);
-          });
-        });
-      });
-
-      function buildVorgangInAbgeschlossenAssignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=${assignedTo}&status=ABGESCHLOSSEN`;
-      }
-    });
+  function buildVorgangInStatusAssignedPageLink(page: number, status: string): string {
+    return `${buildVorgangPageLink(page)}&assignedTo=${assignedTo}&status=${status}`;
+  }
 
+  function testNichtZugewiesenFilter(status: string): void {
     describe('Nicht zugewiesen filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInAbgeschlossenUnassignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge ABGESCHLOSSEN', () => {
-          navigation.getUnassignedFilter().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInAbgeschlossenUnassignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, MEINE_VORGAENGE_NAME_PREFIX + 110);
-          });
-        });
-      });
-
-      function buildVorgangInAbgeschlossenUnassignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=&status=ABGESCHLOSSEN`;
-      }
+      testNichtZugewiesenPage1(status);
+      testNichtZugewiesenPage2(status);
     });
-  });
-
-  describe('Verworfen', () => {
-    const ALLE_NAME_PREFIX: string = 'VorgangVERWORFEN_';
-    const MEINE_VORGAENGE_NAME_PREFIX: string = 'VorgangVERWORFENAssigned_';
-
-    describe('Alle filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          navigation.getAlleFilter().click();
-          waitForSpinnerToDisappear();
-          intercept(HttpMethodE2E.GET, buildVorgangVerworfenPageLink(1)).as(loadPageInterceptor);
-        });
+  }
 
-        it('should show page 1 with 100 vorgaenge VERWORFEN', () => {
-          views.getVerworfen().getRoot().click();
+  function testNichtZugewiesenPage1(status: string): void {
+    describe('page 1', () => {
+      const loadPageInterceptor: string = 'loadPage';
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      beforeEach(() => {
+        intercept(HttpMethodE2E.GET, buildVorgangInStatusUnassignedPageLink(1, status)).as(loadPageInterceptor);
       });
 
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
+      it(`should show page 1 with 100 vorgaeng ${status}`, () => {
+        navigation.getUnassignedFilter().click();
 
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangVerworfenPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge VERWORFEN and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
+        waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
+          assert(getVorgangList(interception).length === PAGE_SIZE);
+          assert(getVorgangList(interception)[0].name, VORGANG_NAME_PREFIX + status + 'Assigned_' + 1);
+          assert(getVorgangList(interception)[99].name, VORGANG_NAME_PREFIX + status + 'Assigned_' + PAGE_SIZE);
         });
       });
-
-      describe('page 3', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangVerworfenPageLink(3)).as(loadPageInterceptor);
-        });
-
-        it('should show page 3 with 10 vorgaenge VERWORFEN ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 20);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 80);
-            assert(interception.response.body._embedded.vorgangHeaderList[19].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      function buildVorgangVerworfenPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&status=VERWORFEN`;
-      }
     });
+  }
 
-    describe('Meine Vorgänge filter', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInVerworfenAssignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge VERWORFEN', () => {
-          navigation.getMeineVorgaengeFilter().click();
+  function testNichtZugewiesenPage2(status: string): void {
+    describe('page 2', () => {
+      const loadPageInterceptor: string = 'loadPage';
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, MEINE_VORGAENGE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
+      beforeEach(() => {
+        intercept(HttpMethodE2E.GET, buildVorgangInStatusUnassignedPageLink(2, status)).as(loadPageInterceptor);
       });
 
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
+      it('should show page 2 with 10 vorgaenge on scrolling to bottom', () => {
+        scrollToWindowBottom();
 
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInVerworfenAssignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge VERWORFEN and 90 vorgaenge ASSIGNED on scrolling to bottom', () => {
-          scrollToWindowBottom();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, MEINE_VORGAENGE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, MEINE_VORGAENGE_NAME_PREFIX + 110);
-          });
+        waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
+          assert(getVorgangList(interception).length === 10);
+          assert(getVorgangList(interception)[0].name, VORGANG_NAME_PREFIX + status + 'Assigned_' + 101);
+          assert(getVorgangList(interception)[9].name, VORGANG_NAME_PREFIX + status + 'Assigned_' + 110);
         });
+        scrollToWindowTop();
       });
-
-      function buildVorgangInVerworfenAssignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=${assignedTo}&status=VERWORFEN`;
-      }
     });
+  }
 
-    describe('Nicht zugewiesen', () => {
-      describe('page 1', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInVerworfenUnassignedPageLink(1)).as(loadPageInterceptor);
-        });
-
-        it('should show page 1 with 100 vorgaenge VERWORFEN', () => {
-          navigation.getUnassignedFilter().click();
-
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 1);
-            assert(interception.response.body._embedded.vorgangHeaderList[99].name, ALLE_NAME_PREFIX + PAGE_SIZE);
-          });
-        });
-      });
-
-      describe('page 2', () => {
-        const loadPageInterceptor: string = 'loadPage';
-
-        beforeEach(() => {
-          intercept(HttpMethodE2E.GET, buildVorgangInVerworfenUnassignedPageLink(2)).as(loadPageInterceptor);
-        });
-
-        it('should show page 2 with 10 vorgaenge on scrolling to bottom', () => {
-          scrollToWindowBottom();
+  function buildVorgangInStatusUnassignedPageLink(page: number, status: string): string {
+    return `${buildVorgangPageLink(page)}&assignedTo=&status=${status}`;
+  }
 
-          waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => {
-            assert(interception.response.body._embedded.vorgangHeaderList.length === 10);
-            assert(interception.response.body._embedded.vorgangHeaderList[0].name, ALLE_NAME_PREFIX + 101);
-            assert(interception.response.body._embedded.vorgangHeaderList[9].name, ALLE_NAME_PREFIX + 110);
-          });
-        });
-      });
+  function buildVorgangPageLink(page: number): string {
+    return `vorgangs?page=${page - 1}&limit=100`;
+  }
 
-      function buildVorgangInVerworfenUnassignedPageLink(page: number): string {
-        return `${buildVorgangPageLink(page)}&assignedTo=&status=VERWORFEN`;
-      }
-    });
-  });
+  function getVorgangList(interception: Interception): VorgangE2E[] {
+    return interception.response.body._embedded.vorgangHeaderList;
+  }
 
   function createVorgaengeWithStatus(status: VorgangStatusE2E): VorgangE2E[] {
     let count = 1;
     return generateIds(110).map((randomId) => {
       const vorgang: VorgangE2E = {
-        ...buildVorgang(randomId, 'Vorgang' + status + '_' + count),
+        ...buildVorgang(randomId, VORGANG_NAME_PREFIX + status + '_' + count),
         status,
       };
       count++;
@@ -992,7 +349,7 @@ describe('VorgangList View Pages', () => {
     let count = 1;
     return generateIds(110).map((randomId) => {
       const vorgang: VorgangE2E = {
-        ...buildVorgang(randomId, 'Vorgang' + status + 'Assigned_' + count),
+        ...buildVorgang(randomId, VORGANG_NAME_PREFIX + status + 'Assigned_' + count),
         status,
         assignedTo,
       };
@@ -1000,8 +357,4 @@ describe('VorgangList View Pages', () => {
       return vorgang;
     });
   }
-
-  function buildVorgangPageLink(page: number): string {
-    return `vorgangs?page=${page - 1}&limit=100`;
-  }
 });
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 b4f477e242..e3260f6de5 100644
--- a/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/cypress-helper.ts
@@ -170,6 +170,10 @@ export function scrollToWindowBottom(): void {
   cy.window().scrollTo('bottom');
 }
 
+export function scrollToWindowTop(): void {
+  cy.window().scrollTo('top');
+}
+
 export function intercept(method: string, url: string): Cypress.Chainable<null> {
   return cy.intercept(method, url);
 }
-- 
GitLab