diff --git a/goofy-client/apps/goofy-e2e/src/components/vorgang/vorgang-antragsteller.e2e.component.ts b/goofy-client/apps/goofy-e2e/src/components/vorgang/vorgang-antragsteller.e2e.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..58cd11edad0bd6137400d0facec6a668fe9d8f1f --- /dev/null +++ b/goofy-client/apps/goofy-e2e/src/components/vorgang/vorgang-antragsteller.e2e.component.ts @@ -0,0 +1,39 @@ +export class AntragstellerE2EComponent { + + private readonly antragstellerName: string = 'antragsteller-name'; + private readonly antragstellerEmail: string = 'antragsteller-email'; + private readonly antragstellerTelefon: string = 'antragsteller-telefon'; + private readonly antragstellerStrasseHausnummer: string = 'antragsteller-strasse-hausnummer'; + private readonly antragstellerPlzOrt: string = 'antragsteller-plz-ort'; + private readonly antragstellerBirthData: string = 'antragsteller-geburt'; + + private readonly locatorRoot: string = 'vorgang-detail-antragsteller'; + + public getRoot() { + return cy.getTestElement(this.locatorRoot); + } + + public getName() { + return cy.getTestElement(this.antragstellerName); + } + + public getEmail() { + return cy.getTestElement(this.antragstellerEmail); + } + + public getTelefon() { + return cy.getTestElement(this.antragstellerTelefon); + } + + public getStrasseHausnummer() { + return cy.getTestElement(this.antragstellerStrasseHausnummer); + } + + public getPlzOrt(): void { + return cy.getTestElement(this.antragstellerPlzOrt); + } + + public getBirthData() { + return cy.getTestElement(this.antragstellerBirthData); + } +} \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/src/fixtures/vorgang/vorgang.json b/goofy-client/apps/goofy-e2e/src/fixtures/vorgang/vorgang.json index b35fc386d6096640b6c4926d8393521c16bd7473..57c6cd82224f6ebb095aedff8215c220468600b6 100644 --- a/goofy-client/apps/goofy-e2e/src/fixtures/vorgang/vorgang.json +++ b/goofy-client/apps/goofy-e2e/src/fixtures/vorgang/vorgang.json @@ -32,6 +32,12 @@ "geburtsdatum": "1995-03-21", "geburtsort": "Flensburg", "geburtsname": "Max Testermann", + "email": "testermann.e2e@mail.me", + "telefon": "+ 49 3X4 434X", + "strasse": "testpipelineStrasse", + "hausnummer": "22a", + "plz": "66X00", + "ort": "Schleswig Holstein", "postfachId" : "04d39269-81c5-4838-8b73-08d9567f06d7" }, "zustaendigeStelle": { diff --git a/goofy-client/apps/goofy-e2e/src/integration/vorgang-detailansicht/vorgang-detailansicht.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/vorgang-detailansicht/vorgang-detailansicht.e2e-spec.ts index 47289d8c546144efb20089551485f7091ced26a5..b7c580059344189c8ad587cff1a6194f2b8be724 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/vorgang-detailansicht/vorgang-detailansicht.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/integration/vorgang-detailansicht/vorgang-detailansicht.e2e-spec.ts @@ -2,6 +2,7 @@ import { formatDate, registerLocaleData } from '@angular/common'; import localeDe from '@angular/common/locales/de'; import localeDeExtra from '@angular/common/locales/extra/de'; import { ExpansionPanelE2Eomponent } from '../../components/ui/expansion-panel.e2e.component'; +import { AntragstellerE2EComponent } from '../../components/vorgang/vorgang-antragsteller.e2e.component'; import { VorgangDetailHeaderE2EComponent } from '../../components/vorgang/vorgang-detail-header.e2e.component'; import { VorgangFormularE2EComponent } from '../../components/vorgang/vorgang-formular.e2e.component'; import { VorgangListE2EComponent } from '../../components/vorgang/vorgang-list.e2e.component'; @@ -11,7 +12,7 @@ import { VorgangPage } from '../../page-objects/vorgang.po'; import { dropCollections, reload } from '../../support/cypress-helper'; import { contains, exist, haveText, shouldFirstContains, shouldHaveAttributeBeGreaterThan, shouldHaveAttributeBeLowerThan } from '../../support/cypress.util'; import { loginAsSabine } from '../../support/user-util'; -import { createVorgang, initVorgang } from '../../support/vorgang-util'; +import { AntragstellerE2ETestData, createVorgang, initVorgang } from '../../support/vorgang-util'; registerLocaleData(localeDe, 'de', localeDeExtra); @@ -23,6 +24,7 @@ describe('Vorgang Detailansicht', () => { const vorgangFormular: VorgangFormularE2EComponent = new VorgangFormularE2EComponent(); const vorgangHeader: VorgangDetailHeaderE2EComponent = new VorgangDetailHeaderE2EComponent(); const expansionPanelContainer: ExpansionPanelE2Eomponent = vorgangPage.getFormularContainer().getExpansionPanelContainer(); + const antragsteller: AntragstellerE2EComponent = vorgangPage.getAntragstellerContainer(); const vorgang: VorgangE2E = createVorgang(); @@ -38,51 +40,90 @@ describe('Vorgang Detailansicht', () => { dropCollections(); }) - it('Open Vorgang-Detail-Page', () => { - vorgangList.getListItem(vorgang.name).getRoot().click(); + describe('navigate to vorgang detail', () => { - exist(vorgangHeader.getRoot()); - }) + it('should have header', () => { + vorgangList.getListItem(vorgang.name).getRoot().click(); - it('Check Values', () => { - testHeaderDaten(vorgang); - }) + exist(vorgangHeader.getRoot()); + }) - it('check array in formdata', () => { - contains(vorgangFormular.getRoot(), vorgang.eingangs[0].formData.bezFlurstuek[0]); - contains(vorgangFormular.getRoot(), vorgang.eingangs[0].formData.bezFlurstuek[1]); - }) + it('should have header data', () => { + testHeaderDaten(vorgang); + }) - it('Reload Page', () => { - reload(); + it('should have "bez flurstueck" in formdata', () => { + contains(vorgangFormular.getRoot(), vorgang.eingangs[0].formData.bezFlurstuek[0]); + contains(vorgangFormular.getRoot(), vorgang.eingangs[0].formData.bezFlurstuek[1]); + }) - exist(vorgangHeader.getRoot()); - }) + it('should have header data after reload', () => { + reload(); - it('Check Values again', () => { - testHeaderDaten(vorgang); - }) + exist(vorgangHeader.getRoot()); + testHeaderDaten(vorgang); + }) - it('Check Expanion Panel', () => { - shouldFirstContains(expansionPanelContainer.getExpansionPanelTitle(), 'Formulardaten'); - }) + it('should contains Formulardaten panel', () => { + shouldFirstContains(expansionPanelContainer.getExpansionPanelTitle(), 'Formulardaten'); + }) - it('Check Expansion Panel is open', () => { - shouldHaveAttributeBeGreaterThan(expansionPanelContainer.getExpansionPanel(), 'outerHeight', 50); - }) + it('should have Formulardaten panel open initial', () => { + shouldHaveAttributeBeGreaterThan(expansionPanelContainer.getExpansionPanel(), 'outerHeight', 50); + }) - it('Check if Expansion Panel is closeable', () => { - expansionPanelContainer.getExpansionPanelTitle().first().click(); + it('should Formularpanel to be close after klick', () => { + expansionPanelContainer.getExpansionPanelTitle().first().click(); - shouldHaveAttributeBeLowerThan(expansionPanelContainer.getExpansionPanel(), 'outerHeight', 50); - }) + shouldHaveAttributeBeLowerThan(expansionPanelContainer.getExpansionPanel(), 'outerHeight', 50); + }) - function testHeaderDaten(vorgang: VorgangE2E) { - const keinAz = 'kein Aktenzeichen zugewiesen'; + function testHeaderDaten(vorgang: VorgangE2E) { + const keinAz: string = 'kein Aktenzeichen zugewiesen'; - haveText(vorgangHeader.getStatus(), vorgangStatusLabelE2E[vorgang.status]); - haveText(vorgangHeader.getAktenzeichen(), vorgang.aktenzeichen ? vorgang.aktenzeichen : keinAz); - haveText(vorgangHeader.getName(), vorgang.name); - haveText(vorgangHeader.getCreatedAt(), formatDate(vorgang.createdAt.$date, 'EEEE, d. MMMM y, HH:mm', 'de')); - } -}); + haveText(vorgangHeader.getStatus(), vorgangStatusLabelE2E[vorgang.status]); + haveText(vorgangHeader.getAktenzeichen(), vorgang.aktenzeichen ? vorgang.aktenzeichen : keinAz); + haveText(vorgangHeader.getName(), vorgang.name); + haveText(vorgangHeader.getCreatedAt(), formatDate(vorgang.createdAt.$date, 'EEEE, d. MMMM y, HH:mm', 'de')); + } + }) + + describe('Antragsteller data', () => { + + it('should contains Antragsteller area', () => { + exist(antragsteller.getRoot()); + }) + + it('should contains name', () => { + exist(antragsteller.getName()); + contains(antragsteller.getName(), AntragstellerE2ETestData.anrede); + contains(antragsteller.getName(), AntragstellerE2ETestData.vorname); + contains(antragsteller.getName(), AntragstellerE2ETestData.nachname); + }) + + it('should contains email', () => { + exist(antragsteller.getEmail()); + contains(antragsteller.getEmail(), AntragstellerE2ETestData.email); + }) + + it('should contains telefon', () => { + exist(antragsteller.getTelefon()); + contains(antragsteller.getTelefon(), AntragstellerE2ETestData.telefon); + }) + + it('should contains adresse', () => { + exist(antragsteller.getStrasseHausnummer()); + contains(antragsteller.getStrasseHausnummer(), AntragstellerE2ETestData.strasse); + contains(antragsteller.getStrasseHausnummer(), AntragstellerE2ETestData.hausnummer); + + exist(antragsteller.getPlzOrt()); + contains(antragsteller.getPlzOrt(), AntragstellerE2ETestData.plz); + contains(antragsteller.getPlzOrt(), AntragstellerE2ETestData.ort); + }) + + it('should contains birth data', () => { + exist(antragsteller.getBirthData()); + contains(antragsteller.getBirthData(), AntragstellerE2ETestData.geburtsort); + }) + }) +}); \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/src/model/vorgang.ts b/goofy-client/apps/goofy-e2e/src/model/vorgang.ts index 86e2762821d24c225cbde0e233f4ce730cb8d5df..ca7f3055e8dd59eb7ad8bec40fbe4a2e9839c10b 100644 --- a/goofy-client/apps/goofy-e2e/src/model/vorgang.ts +++ b/goofy-client/apps/goofy-e2e/src/model/vorgang.ts @@ -35,10 +35,17 @@ export class EingangHeaderE2E { export class AntragstellerE2E { anrede: string; nachname: string; - vorganem: string; + vorname: string; geburtsort: string; geburtsname: string; postfachId: string; + geburtsdatum: string; + email: string; + telefon: string; + strasse: string; + hausnummer: string; + plz: string; + ort: string; } export class ZustaendigeStelleE2E { diff --git a/goofy-client/apps/goofy-e2e/src/page-objects/vorgang.po.ts b/goofy-client/apps/goofy-e2e/src/page-objects/vorgang.po.ts index 9d3029187f181d55e49b0aee618c476d4915a1e0..012fe8e3ea36337a1b81914fd1b9576a1b1648da 100644 --- a/goofy-client/apps/goofy-e2e/src/page-objects/vorgang.po.ts +++ b/goofy-client/apps/goofy-e2e/src/page-objects/vorgang.po.ts @@ -3,6 +3,7 @@ import { KommentarE2EComponent } from '../components/kommentar/kommentar-list.e2 import { PostfachMailFormularE2EComponent } from '../components/postfach/postfach-mail-formular.e2e.component'; import { PostfachMailE2EComponent } from '../components/postfach/postfach-mail.e2e.component'; import { FixedDialogE2EComponent } from '../components/ui/fixed-dialog.e2e.component'; +import { AntragstellerE2EComponent } from '../components/vorgang/vorgang-antragsteller.e2e.component'; import { VorgangDetailHeaderE2EComponent } from '../components/vorgang/vorgang-detail-header.e2e.component'; import { VorgangFormularE2EComponent } from '../components/vorgang/vorgang-formular.e2e.component'; import { VorgangForwardingE2EComponent } from '../components/vorgang/vorgang-forward.e2e.component'; @@ -19,6 +20,7 @@ export class VorgangPage { private readonly anhangContainer: AnhangE2EComponent; private readonly kommentarContainer: KommentarE2EComponent; private readonly postfachMailContainer: PostfachMailE2EComponent; + private readonly antragstellerContainer: AntragstellerE2EComponent = new AntragstellerE2EComponent(); private readonly locatorSpinner: string = 'spinner'; private readonly locatorProgressBar: string = 'progress-bar'; @@ -74,6 +76,10 @@ export class VorgangPage { return this.postfachMailFormular; } + public getAntragstellerContainer(): AntragstellerE2EComponent { + return this.antragstellerContainer; + } + public getProgressBar() { return cy.getTestElement(this.locatorProgressBar); } diff --git a/goofy-client/apps/goofy-e2e/src/support/vorgang-util.ts b/goofy-client/apps/goofy-e2e/src/support/vorgang-util.ts index 8fb31fea9741d29bd4b6eb51144865aa6015a0f9..abc0cf121e0d940e1cf523dcebf3f562167c8192 100644 --- a/goofy-client/apps/goofy-e2e/src/support/vorgang-util.ts +++ b/goofy-client/apps/goofy-e2e/src/support/vorgang-util.ts @@ -1,4 +1,4 @@ -import { VorgangE2E } from '../model/vorgang'; +import { AntragstellerE2E, VorgangE2E } from '../model/vorgang'; import { initVorgangData } from './cypress-helper'; export const objectIds: string[] = require('../fixtures/util/object_id_collection.json'); @@ -22,4 +22,6 @@ export function initVorgang(vorgang: VorgangE2E): void { export function initVorgaenge(vorgaenge: VorgangE2E[]): void { initVorgangData(vorgaenge); -} \ No newline at end of file +} + +export const AntragstellerE2ETestData: AntragstellerE2E = createVorgang().eingangs[0].antragsteller; \ No newline at end of file diff --git a/goofy-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.scss b/goofy-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.scss index b248fa6eb0e644a97ecfe828f6e2fb9982ffadc4..57552a1e3dcfbc67bdbfb92f520180f8c4f53bfa 100644 --- a/goofy-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.scss +++ b/goofy-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.scss @@ -14,7 +14,7 @@ &:hover, &:focus-within { - box-shadow: 0 0 4px rgba(#000, 0.32); + // TODO add Keyboard focus } ::ng-deep { diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.html b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.html index 46b7da9597e6b63f54d1096acdc824f84466cf07..0016527a35d16073fb2aa7d18344b162ca1f1a83 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.html +++ b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.html @@ -23,9 +23,10 @@ </div> <div class="sticky-right"> <h3>Antragstellerdaten</h3> - <goofy-client-vorgang-detail-antragsteller *ngIf="vorgangResource.eingang.antragsteller as antragsteller" [antragsteller]="antragsteller" data-test-id="vorgang-detail-antragsteller"></goofy-client-vorgang-detail-antragsteller> - - <h3>Nachrichten</h3> - <goofy-client-postfach-mail-list-container *ngIf="vorgangResource | hasLink: linkRel.POSTFACH_MAILS" [vorgang]="vorgangResource" data-test-id="postfach-nachrichten-container-in-vorgang" class="scroll-area"></goofy-client-postfach-mail-list-container> + <goofy-client-vorgang-detail-antragsteller *ngIf="vorgangResource.eingang.antragsteller as antragsteller" [antragsteller]="antragsteller" data-test-id="vorgang-detail-antragsteller"></goofy-client-vorgang-detail-antragsteller> + <div class="nachrichten"> + <h3>Nachrichten</h3> + <goofy-client-postfach-mail-list-container *ngIf="vorgangResource | hasLink: linkRel.POSTFACH_MAILS" [vorgang]="vorgangResource" data-test-id="postfach-nachrichten-container-in-vorgang" class="scroll-area"></goofy-client-postfach-mail-list-container> + </div> </div> </ng-container> diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.scss b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.scss index 8ad4b06a8ef4dcb49fcb44f5a2b7d7716b879e0f..3c5354972c791b9bca39b491edbf14e58ae45877 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.scss +++ b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.scss @@ -11,6 +11,7 @@ .container { width: calc(100% - 300px); border-right: 1px solid rgba(0, 0, 0, 0.08); + min-height: calc(100vh - 200px); } .sticky-right { @@ -58,3 +59,13 @@ margin-right: 8px; } } + +h3 { + font-weight: 500; +} + +.nachrichten { + border-top: 1px solid rgba(0, 0, 0, 0.08); + margin-top: 16px; + padding-top: 16px; +} diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.spec.ts index 02ffb8118efc70d1f033fbe39aeaa9c277f288bb..d3bef1774013734c32b420cbc5c3f927489be36a 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-area.component.spec.ts @@ -6,7 +6,7 @@ import { AnhangListContainerComponent } from '@goofy-client/ozg-file'; import { PostfachMailListContainerComponent } from '@goofy-client/postfach'; import { createEmptyStateResource, createStateResource, HasLinkPipe, ToEmbeddedResourcesPipe } from '@goofy-client/tech-shared'; import { ButtonWithSpinnerComponent, ExpansionPanelComponent } from '@goofy-client/ui'; -import { Antragsteller, Vorgang, VorgangHeaderLinkRel, VorgangResource, VorgangWithEingang, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@goofy-client/vorgang-shared'; +import { VorgangHeaderLinkRel, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@goofy-client/vorgang-shared'; import { WiedervorlageListInVorgangContainerComponent } from '@goofy-client/wiedervorlage'; import { SpinnerComponent } from 'libs/ui/src/lib/ui/spinner/spinner.component'; import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang'; @@ -140,14 +140,7 @@ describe('VorgangDetailAreaComponent', () => { }) it('should be hidden', () => { - const vorgangOhneAntragsteller: VorgangWithEingangResource = { - ...vorgang, - eingang: { - ...vorgang.eingang, - antragsteller: null, - } - }; - component.vorgangStateResource = createStateResource(vorgangOhneAntragsteller); + component.vorgangStateResource = createStateResource(vorgang); fixture.detectChanges(); const element = fixture.nativeElement.querySelector(postfachNachrichtenContainer); @@ -159,7 +152,7 @@ describe('VorgangDetailAreaComponent', () => { describe('antragsteller details', () => { it('should be visible', () => { - component.vorgangStateResource = createStateResource(createVorgangWithEingangResource([VorgangHeaderLinkRel.KOMMENTARE])); + component.vorgangStateResource = createStateResource(vorgang); fixture.detectChanges(); const element = fixture.nativeElement.querySelector(vorgangDetailAntragsteller); @@ -168,7 +161,14 @@ describe('VorgangDetailAreaComponent', () => { }) it('should be hidden', () => { - component.vorgangStateResource = createStateResource(vorgang); + const vorgangOhneAntragsteller: VorgangWithEingangResource = { + ...vorgang, + eingang: { + ...vorgang.eingang, + antragsteller: null, + } + }; + component.vorgangStateResource = createStateResource(vorgangOhneAntragsteller); fixture.detectChanges(); const element = fixture.nativeElement.querySelector(vorgangDetailAntragsteller);