diff --git a/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-search-view.cy.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-search-view.cy.ts new file mode 100644 index 0000000000000000000000000000000000000000..76d05ff2a7145e1d5305f73d0e13b72a5f4cd2e3 --- /dev/null +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-search-view.cy.ts @@ -0,0 +1,50 @@ +import { registerLocaleData } from '@angular/common'; +import localeDe from '@angular/common/locales/de'; +import localeDeExtra from '@angular/common/locales/extra/de'; +import { CurrentUserProfileE2EComponent } from 'apps/goofy-e2e/src/components/user-profile/current-user-profile.component.e2e'; +import { VorgangViewE2EComponent, VorgangViewsE2EComponent } from 'apps/goofy-e2e/src/components/vorgang/vorgang-views.e2e.component'; +import { UserE2E } from 'apps/goofy-e2e/src/model/user'; +import { HeaderE2EComponent } from 'apps/goofy-e2e/src/page-objects/header.po'; +import { MainPage, waitForSpinnerToDisappear } from 'apps/goofy-e2e/src/page-objects/main.po'; +import { containClass, exist } from 'apps/goofy-e2e/src/support/cypress.util'; +import { getUserSabine, loginAsSabine, loginByUi } from 'apps/goofy-e2e/src/support/user-util'; + +registerLocaleData(localeDe, 'de', localeDeExtra); + +describe('Vorgang search view', () => { + const mainPage: MainPage = new MainPage(); + + const header: HeaderE2EComponent = mainPage.getHeader(); + + const views: VorgangViewsE2EComponent = mainPage.getViews(); + const sucheView: VorgangViewE2EComponent = views.getSuche(); + + const currentUserProfile: CurrentUserProfileE2EComponent = header.getCurrentUserProfile(); + + const user: UserE2E = getUserSabine(); + + before(() => { + loginAsSabine(); + + waitForSpinnerToDisappear(); + }) + + describe('should select search view', () => { + + it('should set selected after click', () => { + sucheView.getRoot().click(); + waitForSpinnerToDisappear(); + + containClass(sucheView.getRoot(), 'selected'); + }) + + it('should show new view after logout and login', () => { + currentUserProfile.logout(); + + loginByUi(user); + waitForSpinnerToDisappear(); + + exist(views.getNeu().getRoot()); + }) + }) +}) \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/src/support/user-util.ts b/goofy-client/apps/goofy-e2e/src/support/user-util.ts index 515962a55850f2459094f1d1ab61760ef14c1609..e9d28f638f213af7d03b0ba6ac17dc4c569a7d0f 100644 --- a/goofy-client/apps/goofy-e2e/src/support/user-util.ts +++ b/goofy-client/apps/goofy-e2e/src/support/user-util.ts @@ -119,4 +119,13 @@ export enum UserRoleE2E { VERWALTUNG_LOESCHEN = 'VERWALTUNG_LOESCHEN', VERWALTUNG_POSTSTELLE = 'VERWALTUNG_POSTSTELLE', VERWALTUNG_USER = 'VERWALTUNG_USER' +} + +//TODO Cleanup +export function loginByUi(user: UserE2E): void { + cy.visit('') + .get('#kc-login').should('exist') + .get('#username').type(user.name) + .get('#password').type(user.password) + .get('#kc-login').click(); } \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts index d73dd18fd51493f8598dfca7e2704b1ee57d31a9..c8850e6f72d57741a1db8213e09cd03b851b686d 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts @@ -935,4 +935,68 @@ describe('Vorgang Reducer', () => { }) }) }) + + describe('initialState', () => { + + describe('vorgangStatistic', () => { + + describe('byStatus', () => { + + it('should have 0 as neu', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.byStatus.neu).toEqual(0); + }) + + it('should have 0 as angenommen', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.byStatus.angenommen).toEqual(0); + }) + + it('should have 0 as inBearbeitung', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.byStatus.inBearbeitung).toEqual(0); + }) + + it('should have 0 as beschieden', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.byStatus.beschieden).toEqual(0); + }) + + it('should have 0 as abgeschlossen', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.byStatus.abgeschlossen).toEqual(0); + }) + + it('should have 0 as verworfen', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.byStatus.verworfen).toEqual(0); + }) + + it('should have 0 as zuLoeschen', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.byStatus.zuLoeschen).toEqual(0); + }) + }) + + + it('should have 0 as wiedervorlagen', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.wiedervorlagen).toBe(0); + }) + + it('should have false as existsWiedervorlageOverdue', () => { + const vorgangStatistic: StateResource<VorgangStatistic> = Reducer.initialState.vorgangStatistic; + + expect(vorgangStatistic.resource.existsWiedervorlageOverdue).toBeFalsy(); + }) + }) + }) }); \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts index f95f0eae0c4bdf5e975326211c1898d8ab06c651..18b2cf74cf0999390731c5c9735cca6df7737e1e 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts @@ -66,7 +66,7 @@ export interface VorgangState { export const initialState: VorgangState = { vorgangList: createEmptyStateResource(), - vorgangStatistic: createEmptyStateResource(), + vorgangStatistic: createStateResource(createEmptyVorgangStatistic()), vorgaenge: EMPTY_ARRAY, searchString: EMPTY_STRING, searchPreviewList: createEmptyStateResource(), @@ -84,6 +84,22 @@ export const initialState: VorgangState = { vorgangExport: createEmptyStateResource(), }; +function createEmptyVorgangStatistic(): VorgangStatistic { + return { + byStatus: { + abgeschlossen:0, + angenommen: 0, + neu: 0, + inBearbeitung: 0, + beschieden: 0, + verworfen: 0, + zuLoeschen: 0 + }, + wiedervorlagen: 0, + existsWiedervorlageOverdue: false + }; +} + const vorgangReducer: ActionReducer<VorgangState, Action> = createReducer( initialState,