diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forwarding-dialog.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forwarding-dialog.e2e.component.ts index 27fbc0aa695b4e30a7e311679e3331dfd621b8ea..7f5d897628057b0c929c61fd9596ad7de3dad49a 100644 --- a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forwarding-dialog.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forwarding-dialog.e2e.component.ts @@ -2,7 +2,7 @@ export class ForwardingDialogE2EComponent { private readonly root: string = 'forwarding-dialog'; private readonly cancelButton: string = 'cancel-dialog-button'; private readonly cancelIconButton: string = 'cancel-dialog-icon-button'; - private readonly forwardingButton: string = 'forwarding-button'; + private readonly forwardingButton: string = 'forwarding-dialog-forwarding-button'; private readonly searchText: string = 'instant_search-text-input'; private readonly searchEntry: string = 'item-button'; private readonly forwardingItem: string = 'forwarding-item'; diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/forwarding/forwarding.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/forwarding/forwarding.cy.ts new file mode 100644 index 0000000000000000000000000000000000000000..38dc17bb68d5b4e430c6ae5c3c3cd5bbc4cb8f4c --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/forwarding/forwarding.cy.ts @@ -0,0 +1,40 @@ +import { registerLocaleData } from '@angular/common'; +import localeDe from '@angular/common/locales/de'; +import localeDeExtra from '@angular/common/locales/extra/de'; +import { E2EAppHelper } from 'apps/alfa-e2e/src/helper/app.helper'; +import { E2EForwardingHelper } from 'apps/alfa-e2e/src/helper/forwarding/forwarding.helper'; +import { E2EOrganisationsEinheit } from 'apps/alfa-e2e/src/model/organisationseinheit'; +import { E2EVorgangVerifier } from '../../../helper/vorgang/vorgang.verifier'; +import { VorgangE2E } from '../../../model/vorgang'; +import { dropCollections } from '../../../support/cypress-helper'; +import { createVorgang, initVorgang } from '../../../support/vorgang-util'; + +registerLocaleData(localeDe, 'de', localeDeExtra); + +describe('Vorgang weiterleiten', () => { + const appHelper: E2EAppHelper = new E2EAppHelper(); + + const vorgangVerifier: E2EVorgangVerifier = new E2EVorgangVerifier(); + + const forwardingHelper: E2EForwardingHelper = new E2EForwardingHelper(); + + const vorgang: VorgangE2E = { ...createVorgang(), name: 'Weiterleitung' }; + + before(() => { + initVorgang(vorgang); + + appHelper.loginAsSabine(); + }); + + after(() => { + dropCollections(); + }); + + it('should disable all functions after successfully forwarding', () => { + forwardingHelper.openForwarding(vorgang.name); + + forwardingHelper.forwardTo(E2EOrganisationsEinheit.HAMBURG_STADTENTWAESSERUNG); + + vorgangVerifier.verifyVorgangIsLocked(); + }); +}); diff --git a/alfa-client/apps/alfa-e2e/src/helper/app.helper.ts b/alfa-client/apps/alfa-e2e/src/helper/app.helper.ts new file mode 100644 index 0000000000000000000000000000000000000000..e264eb98df16537f69c250fa09252c35346c43b8 --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/app.helper.ts @@ -0,0 +1,23 @@ +import { VorgangListE2EComponent } from '../components/vorgang/vorgang-list.e2e.component'; +import { MainPage, waitForSpinnerToDisappear } from '../page-objects/main.po'; +import { exist } from '../support/cypress.util'; +import { loginAsSabine } from '../support/user-util'; + +export class E2EAppHelper { + private readonly mainPage: MainPage = new MainPage(); + private readonly vorgangList: VorgangListE2EComponent = new VorgangListE2EComponent(); + + public loginAsSabine(): void { + loginAsSabine(); + this.waitAfterLogin(); + } + + private waitAfterLogin(): void { + waitForSpinnerToDisappear(); + exist(this.vorgangList.getRoot()); + } + + public navigateToDomain(): void { + this.mainPage.getHeader().getLogo().click(); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.executor.ts b/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.executor.ts new file mode 100644 index 0000000000000000000000000000000000000000..22295bb180d00c9d23b787fde72a001bea29cab2 --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.executor.ts @@ -0,0 +1,16 @@ +import { ForwardingDialogE2EComponent } from '../../components/vorgang/vorgang-forwarding-dialog.e2e.component'; +import { waitForSpinnerToDisappear } from '../../page-objects/main.po'; +import { exist } from '../../support/cypress.util'; + +export class E2EForwardingExecutor { + private readonly forwardingDialog = new ForwardingDialogE2EComponent(); + + public fillForwardingDialog(organisationsEinheit: string): void { + this.forwardingDialog.getSearchText().type(organisationsEinheit); + waitForSpinnerToDisappear(); + this.forwardingDialog.clickSearchEntry(0); + exist(this.forwardingDialog.getForwardingItem()); + this.forwardingDialog.getForwardingButton().click(); + waitForSpinnerToDisappear(); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.helper.ts b/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.helper.ts new file mode 100644 index 0000000000000000000000000000000000000000..218fd6e7140255e57d51924766bc47242c33dffc --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.helper.ts @@ -0,0 +1,15 @@ +import { E2EForwardingExecutor } from './forwarding.executor'; +import { E2EForwardingNavigator } from './forwarding.navigator'; + +export class E2EForwardingHelper { + private readonly executor: E2EForwardingExecutor = new E2EForwardingExecutor(); + private readonly navigator: E2EForwardingNavigator = new E2EForwardingNavigator(); + + public openForwarding(vorgangName: string): void { + this.navigator.openForwardDialog(vorgangName); + } + + public forwardTo(orgnisationsEinheit: string): void { + this.executor.fillForwardingDialog(orgnisationsEinheit); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.navigator.ts b/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.navigator.ts new file mode 100644 index 0000000000000000000000000000000000000000..3400d79516d98512531d28f43b8575f583a5d0f4 --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/helper/forwarding/forwarding.navigator.ts @@ -0,0 +1,17 @@ +import { VorgangFormularButtonsE2EComponent } from '../../components/vorgang/vorgang-formular-buttons.e2e.components'; +import { ForwardingDialogE2EComponent } from '../../components/vorgang/vorgang-forwarding-dialog.e2e.component'; +import { exist } from '../../support/cypress.util'; +import { E2EVorgangNavigator } from '../vorgang/vorgang.navigator'; + +export class E2EForwardingNavigator { + private readonly vorgangNavigator: E2EVorgangNavigator = new E2EVorgangNavigator(); + + private readonly formularButtons: VorgangFormularButtonsE2EComponent = new VorgangFormularButtonsE2EComponent(); + private readonly forwardingDialog: ForwardingDialogE2EComponent = new ForwardingDialogE2EComponent(); + + public openForwardDialog(vorgangName: string): void { + this.vorgangNavigator.openVorgangDetailByName(vorgangName); + this.formularButtons.getForwardButton().click(); + exist(this.forwardingDialog.getRoot()); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/helper/vorgang/vorgang.navigator.ts b/alfa-client/apps/alfa-e2e/src/helper/vorgang/vorgang.navigator.ts index 7b4fc54b196ff4dc2c83ffbf029a8b063c6b1054..3225f82b8ac3c2dd7158bbc00e1499f30c0f4c14 100644 --- a/alfa-client/apps/alfa-e2e/src/helper/vorgang/vorgang.navigator.ts +++ b/alfa-client/apps/alfa-e2e/src/helper/vorgang/vorgang.navigator.ts @@ -1,8 +1,12 @@ import { VorgangListE2EComponent } from '../../components/vorgang/vorgang-list.e2e.component'; import { waitForSpinnerToDisappear } from '../../page-objects/main.po'; +import { exist } from '../../support/cypress.util'; +import { E2EAppHelper } from '../app.helper'; import { E2EVorgangVerifier } from './vorgang.verifier'; export class E2EVorgangNavigator { + private readonly appHelper: E2EAppHelper = new E2EAppHelper(); + private readonly verifier: E2EVorgangVerifier = new E2EVorgangVerifier(); private readonly vorgangListPage = new VorgangListE2EComponent(); @@ -12,4 +16,11 @@ export class E2EVorgangNavigator { waitForSpinnerToDisappear(); this.verifier.verifyVorgangDetailOpen(vorgangName); } + + public openVorgang(vorgangName: string): void { + this.appHelper.navigateToDomain(); + waitForSpinnerToDisappear(); + exist(this.vorgangListPage.getRoot()); + this.openVorgangDetailByName(vorgangName); + } } diff --git a/alfa-client/apps/alfa-e2e/src/helper/vorgang/vorgang.verifier.ts b/alfa-client/apps/alfa-e2e/src/helper/vorgang/vorgang.verifier.ts index c42945065f7c18f03c4f74fbcbf2809c9b2a8021..d8e8e39394686a7a4414a6d38564e69c5969f6f0 100644 --- a/alfa-client/apps/alfa-e2e/src/helper/vorgang/vorgang.verifier.ts +++ b/alfa-client/apps/alfa-e2e/src/helper/vorgang/vorgang.verifier.ts @@ -1,8 +1,10 @@ +import { VorgangFormularButtonsE2EComponent } from '../../components/vorgang/vorgang-formular-buttons.e2e.components'; import { VorgangPage } from '../../page-objects/vorgang.po'; import { contains, exist, notExist } from '../../support/cypress.util'; export class E2EVorgangVerifier { private readonly vorgangPage: VorgangPage = new VorgangPage(); + private readonly formularButtons: VorgangFormularButtonsE2EComponent = new VorgangFormularButtonsE2EComponent(); public verifyVorgangDetailOpen(vorgangName: string): void { exist(this.vorgangPage.getVorgangDetailHeader().getRoot()); @@ -16,4 +18,25 @@ export class E2EVorgangVerifier { public verifyNoForwardingButtonExists(): void { notExist(this.vorgangPage.getFormularButtons().getForwardButton()); } + + public verifyVorgangIsLocked(): void { + this.verifyFormularButtonsNotVisible(); + notExist(this.vorgangPage.getWiedervorlagenContainer().getCreateWiedervorlageButton()); + notExist(this.vorgangPage.getKommentarContainer().getHinzufuegenButton()); + notExist(this.vorgangPage.getPostfachMailcontainer().getCreateButtonWithText()); + notExist(this.vorgangPage.getPostfachMailcontainer().getCreateButtonWithoutText()); + } + + private verifyFormularButtonsNotVisible(): void { + notExist(this.formularButtons.getAbschliessenButton()); + notExist(this.formularButtons.getBearbeitenButton()); + notExist(this.formularButtons.getBescheidenButton()); + notExist(this.formularButtons.getEndgueltigLoeschenButton()); + notExist(this.formularButtons.getForwardButton()); + notExist(this.formularButtons.getLoeschAnforderungZuruecknehmenButton()); + notExist(this.formularButtons.getVerwerfenButton()); + notExist(this.formularButtons.getWiedereroeffnenButton()); + notExist(this.formularButtons.getZurueckholenButton()); + notExist(this.formularButtons.getZurueckstellenButton()); + } } diff --git a/alfa-client/apps/alfa-e2e/src/model/organisationseinheit.ts b/alfa-client/apps/alfa-e2e/src/model/organisationseinheit.ts new file mode 100644 index 0000000000000000000000000000000000000000..302f3c401870a6951537a8fceeea96760e239abf --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/model/organisationseinheit.ts @@ -0,0 +1,3 @@ +export enum E2EOrganisationsEinheit { + HAMBURG_STADTENTWAESSERUNG = 'Wasserwerk - Hamburg Wasser - Hamburger Stadtentwässerung', +} diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html index 1b36245dd262eb85c56fa35d29ba8f4bf1ba53d4..56351e1e676a1a52233c159cb5eca35317ffbe96 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html @@ -4,7 +4,7 @@ (clickEmitter)="clickEmitter.emit()" text="Weiterleiten" variant="outline" - dataTestId="forwarding-button" + [dataTestId]="dataTestId" data-test-id="forwarding-button-container" > <ods-forward-vorgang-icon icon class="fill-primary" /> diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts index 767fe5e4ce40e7589725973d37e9a84c12fd0564..6d4eb151c9bdcff316d90a80648bf99308fb69d1 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts @@ -13,6 +13,7 @@ import { ForwardVorgangIconComponent } from '@ods/system'; export class ForwardingButtonComponent { @Input() disabled: boolean; @Input() stateResource: StateResource<CommandResource>; + @Input({ required: true }) dataTestId: string; @Output() clickEmitter: EventEmitter<void> = new EventEmitter(); } diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html index 5aaf99a340455262073812254cf8c7d74adf578e..ebe39314d3993a6f3793f0e87526ab361e9a38ca 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.html @@ -16,6 +16,7 @@ [disabled]="!selectedSearchResult" (clickEmitter)="onForwarding()" data-test-id="foward-dialog-forward-button" + dataTestId="forwarding-dialog-forwarding-button" /> <ods-cancel-dialog-button /> </div>