diff --git a/alfa-client/apps/alfa-e2e/docker-compose.yml b/alfa-client/apps/alfa-e2e/docker-compose.yml index c1084ee33bd694659129af4a90e59dc5d1b0c288..e541a7eef1c009fcd890726f87fb35cb11b50868 100644 --- a/alfa-client/apps/alfa-e2e/docker-compose.yml +++ b/alfa-client/apps/alfa-e2e/docker-compose.yml @@ -211,10 +211,7 @@ services: - 7080:8080 - 7081:8081 healthcheck: - test: [ - 'CMD-SHELL', - "wget --spider localhost:8081/version", - ] + test: ['CMD-SHELL', 'wget --spider localhost:8081/version'] interval: 5s timeout: 5s retries: 5 @@ -228,4 +225,4 @@ services: curl -X POST http://smocker:8081/mocks -H 'Content-Type: application/x-yaml' --data-binary @/mocks/mocks.yaml" depends_on: smocker: - condition: service_healthy \ No newline at end of file + condition: service_healthy 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 index 9433275b79fafd874af6f7fbef835e5ad2deb76f..9197f6bc89b181b3cfb5851d03d86083b60704ed 100644 --- 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 @@ -1,4 +1,4 @@ -import { enterWith } from '../../support/cypress.util'; +import { contains, enterWith, haveValue } from '../../support/cypress.util'; export class VorgangZusammenarbeitE2EComponent { private readonly anfrageButton: string = 'anfrage-erstellen-button'; @@ -7,6 +7,12 @@ export class VorgangZusammenarbeitE2EComponent { private readonly messageText: string = 'Nachricht-textarea'; private readonly sendButton: string = 'collaboration-request-submit-button'; private readonly cancelButton: string = 'collaboration-request-cancel-button'; + private readonly searchText: string = 'instant_search-text-input'; + private readonly closeSearchButton: string = 'close-search-dialog'; + private readonly clearSearchButton: string = 'clear-instant-search'; + private readonly searchEntry: string = 'item-button'; + private readonly orgaAddress: string = 'organisations-einheit-in-collaboration'; + private readonly anfrageResult: string = 'collaboration-request-result'; public getAnfrageButton(): Cypress.Chainable<JQuery<HTMLElement>> { return cy.getTestElement(this.anfrageButton); @@ -64,4 +70,60 @@ export class VorgangZusammenarbeitE2EComponent { public cancelAnfrage(): void { this.getCancelButton().click(); } + + public getCloseSearchButton(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.closeSearchButton); + } + + public closeSearch(): void { + this.getCloseSearchButton().click(); + } + + public getSearchText(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.searchText); + } + + public hasSearchText(text: string): void { + haveValue(this.getSearchText(), text); + } + + public enterSearchInput(text: string): void { + this.getSearchText().clear().type(text); + } + + public getClearSearchButton(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.clearSearchButton); + } + + public clearSearch(): void { + this.getClearSearchButton().click(); + } + + public countSearchEntries(): Cypress.Chainable<number> { + return cy.getTestElement(this.searchEntry).then((entries) => { + return Cypress.$(entries).length; + }); + } + + public expectNumberOfEntriesToBe(entries: number): void { + this.countSearchEntries().then((count) => { + expect(count).to.equal(entries); + }); + } + + public clickSearchEntry(index: number): void { + cy.getTestElement(this.searchEntry).eq(index).click(); + } + + public addressContains(address: string): void { + contains(cy.getTestElement(this.orgaAddress), address); + } + + public getAnfrageResult(): Cypress.Chainable<JQuery<HTMLElement>> { + return cy.getTestElement(this.anfrageResult); + } + + public anfrageResultContains(anfrage: string): void { + contains(this.getAnfrageResult(), anfrage); + } } diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts index 323803e5693ea60d476d70aff45717143b624cc4..f81145752792b75c1f19e7169f42dbc0a9c5e54c 100644 --- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts @@ -32,7 +32,7 @@ import { objectIds, } from '../../../support/vorgang-util'; -describe('Ungelesene Nachrichten', () => { +describe('VorgangList Ungelesene Nachrichten', () => { const mainPage: MainPage = new MainPage(); const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); const vorgangPage: VorgangPage = new VorgangPage(); 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 index e02c7bed2c4080d6b8fa7d227f826722c67699ce..edfefe7fb0c8354fec35b903272216718c1e96bc 100644 --- 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 @@ -1,14 +1,15 @@ import { registerLocaleData } from '@angular/common'; import localeDe from '@angular/common/locales/de'; import localeDeExtra from '@angular/common/locales/extra/de'; +import { SnackBarE2EComponent } from 'apps/alfa-e2e/src/components/ui/snackbar.e2e.component'; import { VorgangZusammenarbeitE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-zusammenarbeit.e2e.component'; -import { VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang'; +import { VorgangE2E, VorgangMessagesE2E, 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 { contains, exist, notExist } from '../../../support/cypress.util'; import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; import { buildVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util'; @@ -30,6 +31,9 @@ describe('Vorgang Zusammenarbeit anfragen', () => { const titleText: string = 'Dies ist ein Test-Titel !"§$%&'; const messageText: string = 'Sehr geehrter Tester\n\n Dies ist ein !"§$%& Test\n zum Testen der Nachricht.\n\n\n\nhier sollte eine \nScrollbar\nangezeigt\nwerden!\n\nMfG!'; + const stelleSearch1: string = 'k'; + const stelleSearch2: string = 'Kiel'; + const snackBar: SnackBarE2EComponent = mainPage.getSnackBar(); before(() => { initVorgaenge([zusammenarbeitVorgang]); @@ -76,34 +80,43 @@ describe('Vorgang Zusammenarbeit anfragen', () => { it('should open new search label for Zustaendige Stelle', () => { zusammenarbeitContainer.createAnfrage(); - //button click - //Layer wird angezeigt + zusammenarbeitContainer.searchZustaendigeStelle(); + + exist(zusammenarbeitContainer.getCloseSearchButton()); + exist(zusammenarbeitContainer.getSearchText()); }); it('should close layer on Cancel click', () => { - //click Abbrechen + zusammenarbeitContainer.closeSearch(); + + notExist(zusammenarbeitContainer.getCloseSearchButton()); + notExist(zusammenarbeitContainer.getSearchText()); + exist(zusammenarbeitContainer.getZustaendigeStelleButton()); }); - it('should show no search on entering 1 element', () => { - //1 Zeichen in Suche eingeben - //keine Vorschau + it('should delete search term on clicking X', () => { + zusammenarbeitContainer.searchZustaendigeStelle(); + zusammenarbeitContainer.enterSearchInput(stelleSearch1); + zusammenarbeitContainer.clearSearch(); + + zusammenarbeitContainer.hasSearchText(''); }); - it('should show results on entering 2 elements', () => { - //2 Zeichen in Suche eingeben - //Vorschau kontrollieren + it('should find 2 results after entering kiel', () => { + zusammenarbeitContainer.enterSearchInput(stelleSearch2); + + zusammenarbeitContainer.expectNumberOfEntriesToBe(2); }); - it('should delete search term on clicking X', () => { - //X in Suche klicken - //Suche ist leer - //keine Vorschau + it('should close layer after click on search entry', () => { + zusammenarbeitContainer.clickSearchEntry(0); + + exist(zusammenarbeitContainer.getSendButton()); + notExist(zusammenarbeitContainer.getSearchText()); }); - it('should copy and paste Zustaendige Stelle after selection', () => { - //click Suchergebnis - //Adresse und Name wird übernommen - //Layer ist geschlossen + it('should show part of address in Zufi header', () => { + zusammenarbeitContainer.addressContains(stelleSearch2); }); it('should be able to enter title and message, and show scrollbar on long text', () => { @@ -113,11 +126,20 @@ describe('Vorgang Zusammenarbeit anfragen', () => { zusammenarbeitContainer.messageScrollbarIsPresent(); }); - it('should show title and message read-only and remove buttons after sending', () => { - //Button klicken - //Titel und Datum werden angezeigt - //Nachricht wird angezeigt - //Buttons werden ausgeblendet + it('should show title and message, show snackbar, and remove buttons after sending', () => { + zusammenarbeitContainer.sendAnfrage(); + + notExist(zusammenarbeitContainer.getSendButton()); + notExist(zusammenarbeitContainer.getCancelButton()); + + zusammenarbeitContainer.anfrageResultContains(titleText); + + //TODO: Zeilenumbrüche (OZG-6682) + //zusammenarbeitContainer.anfrageResultContains(messageText); + + //TODO: Datum wird angezeigt (OZG-6675) + + contains(snackBar.getMessage(), VorgangMessagesE2E.ZUARBEIT_ANGEFRAGT); }); }); }); diff --git a/alfa-client/apps/alfa-e2e/src/model/vorgang.ts b/alfa-client/apps/alfa-e2e/src/model/vorgang.ts index 7fdbcfd62b93935aef7f35cb4a4f7fc1858c4422..472bf861d161a81067038844cd3adbcf27c02f71 100644 --- a/alfa-client/apps/alfa-e2e/src/model/vorgang.ts +++ b/alfa-client/apps/alfa-e2e/src/model/vorgang.ts @@ -157,6 +157,7 @@ export enum VorgangMessagesE2E { LOESCHEN_ANFORDERN = 'Für den Vorgang wurde eine Löschanforderung gestellt.', ENDGUELTIG_LOESCHEN = 'Der Vorgang wurde gelöscht.', WIEDERVORLAGE_BEARBEITEN_NICHT_MOEGLICH = 'Im Status "Zu löschen" ist die Bearbeitung von Wiedervorlagen nicht möglich.', + ZUARBEIT_ANGEFRAGT = 'Die Zuarbeit wurde angefragt.', } export const NO_AKTENZEICHEN: string = 'kein Aktenzeichen zugewiesen';