diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-views-filter.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-views-filter.cy.ts index 2547f4523c44b68ebd98dacc223c38f8db94abf0..6550b3f595b9fe323e070d155b784a285d10fb42 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-views-filter.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-views-filter.cy.ts @@ -68,10 +68,25 @@ describe('Vorgang views and filter', () => { const abgeschlossenView: VorgangViewE2EComponent = views.getAbgeschlossen(); const verworfenView: VorgangViewE2EComponent = views.getVerworfen(); const zuLoeschenView: VorgangViewE2EComponent = views.getZuLoeschen(); + const ungelesenView: VorgangViewE2EComponent = views.getUngelesen(); const wiedervorlagenView: VorgangViewE2EComponent = views.getWiedervorlagen(); const vorgangListView: VorgangViewE2EComponent = views.getVorgangList(); const sucheView: VorgangViewE2EComponent = views.getSuche(); + const ALL_VIEW_COMPONENTS: VorgangViewE2EComponent[] = [ + neuView, + angenommenView, + inBearbeitungView, + beschiedenView, + abgeschlossenView, + verworfenView, + zuLoeschenView, + ungelesenView, + wiedervorlagenView, + vorgangListView, + sucheView, + ]; + const navigation: NavigationE2EComponent = mainPage.getNavigation(); const vorgangNeuAssigned: VorgangE2E = { @@ -300,262 +315,75 @@ describe('Vorgang views and filter', () => { describe('Select view', () => { describe('Neu', () => { - it('should set selected after click', () => { - neuView.getRoot().click(); - waitForSpinnerToDisappear(); - - isSelected(neuView.getRoot()); - }); - - it('should unselect other views', () => { - isNotSelected(angenommenView.getRoot()); - isNotSelected(inBearbeitungView.getRoot()); - isNotSelected(beschiedenView.getRoot()); - isNotSelected(abgeschlossenView.getRoot()); - isNotSelected(verworfenView.getRoot()); - isNotSelected(zuLoeschenView.getRoot()); - isNotSelected(vorgangListView.getRoot()); - isNotSelected(sucheView.getRoot()); - }); - - it('should keep filter selection', () => { - isOdsButtonToggleChecked(navigation.getAlleFilter()); - isOdsButtonToggleNotChecked(navigation.getMeineVorgaengeFilter()); - isOdsButtonToggleNotChecked(navigation.getUnassignedFilter()); - }); - - it('should filter List', () => { - haveLength(vorgangList.getItems(), 2); - exist(vorgangNeuAssignedInList.getRoot()); - exist(vorgangNeuUnassignedInList.getRoot()); - }); + testAlleFilterViewSelection(neuView, [vorgangNeuAssignedInList, vorgangNeuUnassignedInList]); }); describe('Angenommen', () => { - it('should set selected after click', () => { - angenommenView.getRoot().click(); - waitForSpinnerToDisappear(); - - isSelected(angenommenView.getRoot()); - }); - - it('should unselect other views', () => { - isNotSelected(neuView.getRoot()); - isNotSelected(inBearbeitungView.getRoot()); - isNotSelected(beschiedenView.getRoot()); - isNotSelected(abgeschlossenView.getRoot()); - isNotSelected(verworfenView.getRoot()); - isNotSelected(zuLoeschenView.getRoot()); - isNotSelected(vorgangListView.getRoot()); - isNotSelected(sucheView.getRoot()); - }); - - it('should keep filter selection', () => { - isOdsButtonToggleChecked(navigation.getAlleFilter()); - isOdsButtonToggleNotChecked(navigation.getMeineVorgaengeFilter()); - isOdsButtonToggleNotChecked(navigation.getUnassignedFilter()); - }); - - it('should filter List', () => { - haveLength(vorgangList.getItems(), 2); - exist(vorgangAngenommenAssignedInList.getRoot()); - exist(vorgangAngenommenUnassignedInList.getRoot()); - }); + testAlleFilterViewSelection(angenommenView, [vorgangAngenommenAssignedInList, vorgangAngenommenUnassignedInList]); }); describe('In Bearbeitung', () => { - it('should set selected after click', () => { - inBearbeitungView.getRoot().click(); - waitForSpinnerToDisappear(); - - isSelected(inBearbeitungView.getRoot()); - }); - - it('should unselect other views', () => { - isNotSelected(neuView.getRoot()); - isNotSelected(angenommenView.getRoot()); - isNotSelected(beschiedenView.getRoot()); - isNotSelected(abgeschlossenView.getRoot()); - isNotSelected(verworfenView.getRoot()); - isNotSelected(zuLoeschenView.getRoot()); - isNotSelected(vorgangListView.getRoot()); - isNotSelected(sucheView.getRoot()); - }); - - it('should keep filter selection', () => { - isOdsButtonToggleChecked(navigation.getAlleFilter()); - isOdsButtonToggleNotChecked(navigation.getMeineVorgaengeFilter()); - isOdsButtonToggleNotChecked(navigation.getUnassignedFilter()); - }); - - it('should filter List', () => { - haveLength(vorgangList.getItems(), LIST_SIZE - 12); - exist(vorgangInBearbeitungAssignedInList.getRoot()); - exist(vorgangInBearbeitungUnassignedInList.getRoot()); - }); + testAlleFilterViewSelection(inBearbeitungView, [vorgangInBearbeitungAssignedInList, vorgangInBearbeitungUnassignedInList]); }); describe('Beschieden', () => { - it('should set selected after click', () => { - beschiedenView.getRoot().click(); - waitForSpinnerToDisappear(); - - isSelected(beschiedenView.getRoot()); - }); - - it('should unselect other views', () => { - isNotSelected(neuView.getRoot()); - isNotSelected(angenommenView.getRoot()); - isNotSelected(inBearbeitungView.getRoot()); - isNotSelected(abgeschlossenView.getRoot()); - isNotSelected(verworfenView.getRoot()); - isNotSelected(zuLoeschenView.getRoot()); - isNotSelected(vorgangListView.getRoot()); - isNotSelected(sucheView.getRoot()); - }); - - it('should keep filter selection', () => { - isOdsButtonToggleChecked(navigation.getAlleFilter()); - isOdsButtonToggleNotChecked(navigation.getMeineVorgaengeFilter()); - isOdsButtonToggleNotChecked(navigation.getUnassignedFilter()); - }); - - it('should filter List', () => { - haveLength(vorgangList.getItems(), LIST_SIZE - 12); - exist(vorgangBeschiedenAssignedInList.getRoot()); - exist(vorgangBeschiedenUnassignedInList.getRoot()); - }); + testAlleFilterViewSelection(beschiedenView, [vorgangBeschiedenAssignedInList, vorgangBeschiedenUnassignedInList]); }); describe('Abgeschlossen', () => { - it('should set selected after click', () => { - abgeschlossenView.getRoot().click(); - waitForSpinnerToDisappear(); - - isSelected(abgeschlossenView.getRoot()); - }); - - it('should unselect other views', () => { - isNotSelected(neuView.getRoot()); - isNotSelected(angenommenView.getRoot()); - isNotSelected(inBearbeitungView.getRoot()); - isNotSelected(beschiedenView.getRoot()); - isNotSelected(verworfenView.getRoot()); - isNotSelected(zuLoeschenView.getRoot()); - isNotSelected(vorgangListView.getRoot()); - isNotSelected(sucheView.getRoot()); - }); - - it('should keep filter selection', () => { - isOdsButtonToggleChecked(navigation.getAlleFilter()); - isOdsButtonToggleNotChecked(navigation.getMeineVorgaengeFilter()); - isOdsButtonToggleNotChecked(navigation.getUnassignedFilter()); - }); - - it('should filter List', () => { - haveLength(vorgangList.getItems(), LIST_SIZE - 12); - exist(vorgangAbgeschlossenAssignedInList.getRoot()); - exist(vorgangAbgeschlossenUnassignedInList.getRoot()); - }); + testAlleFilterViewSelection(abgeschlossenView, [vorgangAbgeschlossenAssignedInList, vorgangAbgeschlossenUnassignedInList]); }); describe('Verworfen', () => { - it('should set selected after click', () => { - verworfenView.getRoot().click(); - waitForSpinnerToDisappear(); - - isSelected(verworfenView.getRoot()); - }); - - it('should unselect other views', () => { - isNotSelected(neuView.getRoot()); - isNotSelected(angenommenView.getRoot()); - isNotSelected(inBearbeitungView.getRoot()); - isNotSelected(beschiedenView.getRoot()); - isNotSelected(abgeschlossenView.getRoot()); - isNotSelected(zuLoeschenView.getRoot()); - isNotSelected(vorgangListView.getRoot()); - isNotSelected(sucheView.getRoot()); - }); - - it('should keep filter selection', () => { - isOdsButtonToggleChecked(navigation.getAlleFilter()); - isOdsButtonToggleNotChecked(navigation.getMeineVorgaengeFilter()); - isOdsButtonToggleNotChecked(navigation.getUnassignedFilter()); - }); - - it('should filter List', () => { - haveLength(vorgangList.getItems(), LIST_SIZE - 12); - exist(vorgangVerworfenAssignedInList.getRoot()); - exist(vorgangVerworfenUnassignedInList.getRoot()); - }); + testAlleFilterViewSelection(verworfenView, [vorgangVerworfenAssignedInList, vorgangVerworfenUnassignedInList]); }); describe('Zu Löschen', () => { - it('should set selected after click', () => { - zuLoeschenView.getRoot().click(); - waitForSpinnerToDisappear(); - - isSelected(zuLoeschenView.getRoot()); - }); - - it('should unselect other views', () => { - isNotSelected(neuView.getRoot()); - isNotSelected(angenommenView.getRoot()); - isNotSelected(inBearbeitungView.getRoot()); - isNotSelected(beschiedenView.getRoot()); - isNotSelected(abgeschlossenView.getRoot()); - isNotSelected(verworfenView.getRoot()); - isNotSelected(vorgangListView.getRoot()); - isNotSelected(sucheView.getRoot()); - }); - - it('should keep filter selection', () => { - isOdsButtonToggleChecked(navigation.getAlleFilter()); - isOdsButtonToggleNotChecked(navigation.getMeineVorgaengeFilter()); - isOdsButtonToggleNotChecked(navigation.getUnassignedFilter()); - }); - - it('should filter List', () => { - haveLength(vorgangList.getItems(), LIST_SIZE - 12); - exist(vorgangZuLoeschenAssignedInList.getRoot()); - exist(vorgangZuLoeschenUnassignedInList.getRoot()); - }); + testAlleFilterViewSelection(zuLoeschenView, [vorgangZuLoeschenAssignedInList, vorgangZuLoeschenUnassignedInList]); }); describe('Wiedervorlagen', () => { + testAlleFilterViewSelection(wiedervorlagenView, [vorgangAngenommenUnassignedInList, vorgangAbgeschlossenAssignedInList]); + }); + + function testAlleFilterViewSelection(view: VorgangViewE2EComponent, listItems: VorgangListItemE2EComponent[]): void { + testViewSelection(view); + testOtherViewSelection(view); + testAlleFilterIsSelected(); + testVorgangListItem(listItems); + } + + function testViewSelection(view: VorgangViewE2EComponent): void { it('should set selected after click', () => { - wiedervorlagenView.getRoot().click(); + view.getRoot().click(); waitForSpinnerToDisappear(); - isSelected(wiedervorlagenView.getRoot()); + isSelected(view.getRoot()); }); + } + function testOtherViewSelection(selectedView: VorgangViewE2EComponent): void { it('should unselect other views', () => { - isNotSelected(neuView.getRoot()); - isNotSelected(angenommenView.getRoot()); - isNotSelected(inBearbeitungView.getRoot()); - isNotSelected(beschiedenView.getRoot()); - isNotSelected(abgeschlossenView.getRoot()); - isNotSelected(verworfenView.getRoot()); - isNotSelected(zuLoeschenView.getRoot()); - isNotSelected(vorgangListView.getRoot()); - isNotSelected(sucheView.getRoot()); + ALL_VIEW_COMPONENTS.filter((view: VorgangViewE2EComponent) => view != selectedView).forEach( + (view: VorgangViewE2EComponent) => isNotSelected(view.getRoot()), + ); }); + } + function testAlleFilterIsSelected(): void { it('should keep filter selection', () => { isOdsButtonToggleChecked(navigation.getAlleFilter()); isOdsButtonToggleNotChecked(navigation.getMeineVorgaengeFilter()); isOdsButtonToggleNotChecked(navigation.getUnassignedFilter()); }); + } + function testVorgangListItem(listItems: VorgangListItemE2EComponent[]): void { it('should filter List', () => { - haveLength(vorgangList.getItems(), 2); - - exist(vorgangAngenommenUnassignedInList.getRoot()); - exist(vorgangAbgeschlossenAssignedInList.getRoot()); + haveLength(vorgangList.getItems(), LIST_SIZE - 12); + listItems.forEach((item: VorgangListItemE2EComponent) => exist(item.getRoot())); }); - }); + } describe('VorgangList', () => { it('should set selected after click', () => { @@ -892,11 +720,11 @@ describe('Vorgang views and filter', () => { vorgangSearch.doSearch(searchString); } - function isNotSelected(element) { + function isNotSelected(element: Cypress.Chainable<Element>): void { notContainClass(element, 'selected'); } - function isSelected(element) { + function isSelected(element: Cypress.Chainable<Element>): void { containClass(element, 'selected'); } });