diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-zusammenarbeit.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-zusammenarbeit.e2e.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..e8bafb9462c834d331dec872c19a0d2da747c23b --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-zusammenarbeit.e2e.component.ts @@ -0,0 +1,58 @@ +import { enterWith } from '../../support/cypress.util'; + +export class VorgangZusammenarbeitE2EComponent { + private readonly anfrageButton: string = 'anfrage-erstellen-button'; + private readonly zustaendigeStelleButton: string = 'zustaendige-stelle-search-button'; + private readonly titelText: string = 'Titel-text-input'; + private readonly nachrichtText: string = 'Nachricht-textarea'; + private readonly sendButton: string = 'collaboration-request-send-button'; + private readonly cancelButton: string = 'collaboration-request-cancel-button'; + + public getAnfrageButton(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.anfrageButton); + } + + public createAnfrage(): void { + this.getAnfrageButton().click(); + } + + public getZustaendigeStelleButton(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.zustaendigeStelleButton); + } + + public searchZustaendigeStelle(): void { + this.getZustaendigeStelleButton().click(); + } + + public getStelleTitel(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.titelText); + } + + public enterTitel(text: string): void { + enterWith(this.getStelleTitel(), text); + } + + public getStelleNachricht(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.nachrichtText); + } + + public enterNachricht(text: string): void { + enterWith(this.getStelleNachricht(), text); + } + + public getSendButton(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.sendButton); + } + + public sendAnfrage(): void { + this.getSendButton().click(); + } + + public getCancelButton(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.cancelButton); + } + + public cancelAnfrage(): void { + this.getCancelButton().click(); + } +} diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-zusammenarbeit/vorgang-zusammenarbeit-anfragen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-zusammenarbeit/vorgang-zusammenarbeit-anfragen.cy.ts new file mode 100644 index 0000000000000000000000000000000000000000..ce31b02a2e37104d05b65ec5d3f917969c5ab305 --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-zusammenarbeit/vorgang-zusammenarbeit-anfragen.cy.ts @@ -0,0 +1,113 @@ +import { registerLocaleData } from '@angular/common'; +import localeDe from '@angular/common/locales/de'; +import localeDeExtra from '@angular/common/locales/extra/de'; +import { VorgangZusammenarbeitE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-zusammenarbeit.e2e.component'; +import { VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang'; +import 'cypress-real-events/support'; +import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; +import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; +import { VorgangPage } from '../../../page-objects/vorgang.po'; +import { dropCollections } from '../../../support/cypress-helper'; +import { exist, notExist } from '../../../support/cypress.util'; +import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; +import { buildVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util'; + +registerLocaleData(localeDe, 'de', localeDeExtra); + +describe('Vorgang Zusammenarbeit anfragen', () => { + const mainPage: MainPage = new MainPage(); + const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); + + const vorgangPage: VorgangPage = new VorgangPage(); + const zusammenarbeitContainer: VorgangZusammenarbeitE2EComponent = + vorgangPage.getZusammenarbeitContainer(); + + const zusammenarbeitVorgang: VorgangE2E = { + ...buildVorgang(objectIds[0], 'Zusammenarbeit Vorgang'), + status: VorgangStatusE2E.IN_BEARBEITUNG, + }; + + before(() => { + initVorgaenge([zusammenarbeitVorgang]); + initUsermanagerUsers(); + + loginAsSabine(); + + waitForSpinnerToDisappear(); + exist(vorgangList.getRoot()); + }); + + after(() => { + dropCollections(); + }); + + describe('create new Anfrage', () => { + it('should show button for Zusammenarbeit', () => { + vorgangList.getListItem(zusammenarbeitVorgang.name).getRoot().click(); + waitForSpinnerToDisappear(); + + exist(zusammenarbeitContainer.getAnfrageButton()); + }); + + it('should show input elements on Anfrage click', () => { + zusammenarbeitContainer.createAnfrage(); + + exist(zusammenarbeitContainer.getZustaendigeStelleButton()); + exist(zusammenarbeitContainer.getStelleTitel()); + exist(zusammenarbeitContainer.getStelleNachricht()); + exist(zusammenarbeitContainer.getSendButton()); + exist(zusammenarbeitContainer.getCancelButton()); + }); + + it('should close elements on Cancel click', () => { + zusammenarbeitContainer.cancelAnfrage(); + + notExist(zusammenarbeitContainer.getZustaendigeStelleButton()); + notExist(zusammenarbeitContainer.getStelleTitel()); + notExist(zusammenarbeitContainer.getStelleNachricht()); + notExist(zusammenarbeitContainer.getSendButton()); + notExist(zusammenarbeitContainer.getCancelButton()); + exist(zusammenarbeitContainer.getAnfrageButton()); + }); + + it('should open new search label for Zustaendige Stelle', () => { + //button click + //Layer wird angezeigt + }); + + it('should close layer on Cancel click', () => { + //click Abbrechen + }); + + it('should show no search on entering 1 element', () => { + //1 Zeichen in Suche eingeben + //keine Vorschau + }); + + it('should show results on entering 2 elements', () => { + //2 Zeichen in Suche eingeben + //Vorschau kontrollieren + }); + + it('should delete search term on clicking X', () => { + //X in Suche klicken + //Suche ist leer + //keine Vorschau + }); + + it('should copy and paste Zustaendige Stelle after selection', () => { + //click Suchergebnis + //Adresse und Name wird übernommen + //Layer ist geschlossen + }); + + it('should show title and message read-only and remove buttons after sending', () => { + //Titel eingeben + //Nachricht eingeben + //Button klicken + //Titel und Datum werden angezeigt + //Nachricht wird angezeigt + //Buttons werden ausgeblendet + }); + }); +}); diff --git a/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts b/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts index 835cc89685361d2d76198e0c331c3a81107fbce8..8b0ef02c9f9fde49c3fa1f498e8db784f02865aa 100644 --- a/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts +++ b/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts @@ -36,6 +36,7 @@ import { VorgangFormularDatenE2EComponent } from '../components/vorgang/vorgang- import { VorgangForwardingE2EComponent } from '../components/vorgang/vorgang-forward.e2e.component'; import { VorgangMoreMenuE2EComponent } from '../components/vorgang/vorgang-more-menu.e2e.components'; import { VorgangSubnavigationE2EComponent } from '../components/vorgang/vorgang-subnavigation'; +import { VorgangZusammenarbeitE2EComponent } from '../components/vorgang/vorgang-zusammenarbeit.e2e.component'; import { WiedervorlagenInVorgangE2EComponent } from '../components/wiedervorlage/wiedervorlagen-in-vorgang.e2e.component'; export class VorgangPage { @@ -64,6 +65,8 @@ export class VorgangPage { private readonly postfachMailContainer: PostfachMailE2EComponent = new PostfachMailE2EComponent(); private readonly antragstellerContainer: AntragstellerE2EComponent = new AntragstellerE2EComponent(); + private readonly zusammenArbeitContainer: VorgangZusammenarbeitE2EComponent = + new VorgangZusammenarbeitE2EComponent(); private readonly fixedDialog: FixedDialogE2EComponent = new FixedDialogE2EComponent(); private readonly postfachMailFormular: PostfachMailFormularE2EComponent = @@ -132,6 +135,10 @@ export class VorgangPage { return this.antragstellerContainer; } + public getZusammenarbeitContainer(): VorgangZusammenarbeitE2EComponent { + return this.zusammenArbeitContainer; + } + public getProgressBar() { return cy.getTestElement(this.locatorProgressBar); }