diff --git a/goofy-client/apps/goofy-e2e/src/components/vorgang/vorgang-search.e2e.component.ts b/goofy-client/apps/goofy-e2e/src/components/vorgang/vorgang-search.e2e.component.ts index 38aa9d47d5cd5d4a352f5cebfa77249a60ec6d90..d55afe09826d0244b26c36677c5f07527b234a98 100644 --- a/goofy-client/apps/goofy-e2e/src/components/vorgang/vorgang-search.e2e.component.ts +++ b/goofy-client/apps/goofy-e2e/src/components/vorgang/vorgang-search.e2e.component.ts @@ -2,6 +2,13 @@ export class VorgangSearchE2EComponent { private readonly locatorButton: string = 'search-button'; private readonly locatorInput: string = 'search-input'; private readonly locatorForm: string = 'search-form'; + private readonly locatorSearchPreviewList: string = 'search-preview-list'; + + private readonly locatorRoot: string = 'vorgang-search'; + + public getRoot() { + return cy.getTestElement(this.locatorRoot); + } public getInput() { return cy.getTestElement(this.locatorInput); @@ -15,4 +22,41 @@ export class VorgangSearchE2EComponent { public getForm(): void { return cy.getTestElement(this.locatorForm); } + + public getVorgangSearchPreviewList(): void { + return cy.getTestElement(this.locatorSearchPreviewList); + } + + public getVorgangSearchPreviewListItem(vorgangName) { + return new VorgangSearchPreviewListItemE2EComponent(vorgangName); + } +} + +export class VorgangSearchPreviewListItemE2EComponent { + + private readonly locatorCreatedAt: string = 'preview-list-item-created-at'; + private readonly locatorVorgangName: string = 'preview-list-item-vorgang-name'; + private readonly locatorVorgangAktenzeichen: string = 'preview-list-item-vorgang-aktenzeichen'; + + private readonly rootLocator: string; + + constructor(vorgangName: string) { + this.rootLocator = 'search-preview-list-item-' + vorgangName; + } + + public getRoot() { + return cy.getTestElement(this.rootLocator); + } + + public getCreatedAt() { + return this.getRoot().getTestElement(this.locatorCreatedAt); + } + + public getVorgangName() { + return this.getRoot().getTestElement(this.locatorVorgangName); + } + + public getVorgangAktenzeichen() { + return this.getRoot().getTestElement(this.locatorVorgangAktenzeichen); + } } \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail-error.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail-error.e2e-spec.ts index 5ee1d6bc2096e82a976fbdb933bdfa1fd97ac154..bc483c2089077321f9c85673bd2c457cc225cc0f 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail-error.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail-error.e2e-spec.ts @@ -13,7 +13,7 @@ import { loginAsSabine } from '../../../support/user-util'; import { createPostfachNachrichtReplyItem, createVorgangAttachedItem, initVorgangAttachedItem } from '../../../support/vorgang-attached-item-util'; import { createVorgang, initVorgang } from '../../../support/vorgang-util'; -describe.skip('PostfachMail error', () => { +describe('PostfachMail error', () => { const mainPage: MainPage = new MainPage(); const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); const snackbar: SnackBarE2EComponent = mainPage.getSnackBar(); diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-postfach-nachricht-error.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-postfach-nachricht-error.e2e-spec.ts index a1e336c8b33d066ab0c059967dfb193438521a3e..cb10e9e649262826479c26824b744dfeaad26bbf 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-postfach-nachricht-error.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-postfach-nachricht-error.e2e-spec.ts @@ -12,7 +12,7 @@ import { loginAsSabine } from '../../../support/user-util'; import { createPostfachNachrichtReplyItem, createVorgangAttachedItem, initVorgangAttachedItem } from '../../../support/vorgang-attached-item-util'; import { createVorgang, initVorgang } from '../../../support/vorgang-util'; -describe.skip('Postfach nachricht user profile on backend error', () => { +describe('Postfach nachricht user profile on backend error', () => { const mainPage: MainPage = new MainPage(); const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); @@ -79,7 +79,7 @@ describe.skip('Postfach nachricht user profile on backend error', () => { it('should manipulate response on vorgang detail navigation', () => { vorgangList.getListItem(vorgang.name).getRoot().click(); - waitOfInterceptor(getUserProfileInterceptor).then((interception) => { + waitOfInterceptor(getUserProfileInterceptor).then(interception => { assert(interception.response.statusCode, statusCode.toString()); exist(vorgangPage.getVorgangDetailHeader().getRoot()); vorgangPage.waitForSpinnerToDisappear(); diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-pages.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-pages.e2e-spec.ts index e14ca6400b9740035199e66d183a1ab4b502a9a3..45d1a19844fba5fc7bb218ea81bc20e03c6ff9e7 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-pages.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-pages.e2e-spec.ts @@ -22,22 +22,32 @@ describe('VorgangList Pages', () => { describe('show show first vorgaenge page', () => { - it('should be 100 initial ', () => { - intercept(HttpMethodE2E.GET, '*/vorgangs?page=0').as('loadPage'); + const loadPageInterceptor: string = 'loadPage'; + + beforeEach(() => { + intercept(HttpMethodE2E.GET, '*/vorgangs').as(loadPageInterceptor); + }) - waitOfInterceptor('loadPage').then((interception: Interception) => { + it('should be 100 initial ', () => { + waitOfInterceptor(loadPageInterceptor).then((interception: Interception) => { assert(interception.response.body._embedded.vorgangHeaderList.length === PAGE_SIZE); assert(interception.response.body._embedded.vorgangHeaderList[0].name, 'Test 1'); assert(interception.response.body._embedded.vorgangHeaderList[99].name, 'Test ' + PAGE_SIZE); }) }) + }) - it('should reload next vorgaenge page on scrolling down', () => { - intercept(HttpMethodE2E.GET, '*/vorgangs?page=1').as('loadNextPage'); + describe('load next page', () => { + const loadNextPageInterceptor: string = 'loadNextPage'; + + beforeEach(() => { + intercept(HttpMethodE2E.GET, '*/vorgangs?page=1').as(loadNextPageInterceptor); + }) + it('should reload next vorgaenge page on scrolling down', () => { scrollToWindowBottom(); - waitOfInterceptor('loadNextPage').then((interception: Interception) => { + waitOfInterceptor(loadNextPageInterceptor).then((interception: Interception) => { scrollToWindowBottom(); assert(interception.response.body._embedded.vorgangHeaderList.length === 1); assert(interception.response.body._embedded.vorgangHeaderList[0].name, 'Test 101'); diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.search.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.search.e2e-spec.ts index fa78e5c828029714c21b49c2e48972d1248d91e0..17a2d45880c571586a0659217b491b2f57eedc1e 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.search.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.search.e2e-spec.ts @@ -1,5 +1,6 @@ import { VorgangListItemE2EComponent } from 'apps/goofy-e2e/src/components/vorgang/vorgang-item.e2e.component'; import { VorgangListE2EComponent } from 'apps/goofy-e2e/src/components/vorgang/vorgang-list.e2e.component'; +import { VorgangSearchPreviewListItemE2EComponent } from 'apps/goofy-e2e/src/components/vorgang/vorgang-search.e2e.component'; import { EingangE2E, VorgangE2E, VorgangStatusE2E } from 'apps/goofy-e2e/src/model/vorgang'; import { VorgangPage } from 'apps/goofy-e2e/src/page-objects/vorgang.po'; import { dropCollections, reload } from 'apps/goofy-e2e/src/support/cypress-helper'; @@ -7,7 +8,7 @@ import { generate12ByteId } from 'apps/goofy-e2e/src/support/tech.util'; import { AntragstellerE2ETestData, buildVorgang, createVorgang, EingangE2ETestData, EingangHeaderE2ETestData, initVorgaenge } from 'apps/goofy-e2e/src/support/vorgang-util'; import * as faker from 'faker'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; -import { CypressKeyboardActions, exist, notExist } from '../../../support/cypress.util'; +import { CypressKeyboardActions, exist, haveText, haveValue, notExist } from '../../../support/cypress.util'; import { loginAsSabine, UserRoleE2E } from '../../../support/user-util'; describe('VorgangList Suche', () => { @@ -16,6 +17,10 @@ describe('VorgangList Suche', () => { const vorgangPage: VorgangPage = new VorgangPage(); + after(() => { + dropCollections(); + }) + describe(`on user with role ${UserRoleE2E.VERWALTUNG_USER} by requestId/Eingangskennzeichen`, () => { const requestId: string = faker.datatype.uuid(); @@ -41,41 +46,148 @@ describe('VorgangList Suche', () => { }) it('should filter list', () => { - doSearch(); - + doSearchWith(requestId); waitForSpinnerToDisappear(); + exist(vorgangStayInList.getRoot()); notExist(vorgangDisappearInList.getRoot()); }) - it('should filter list and keep criteria on reload', () => { - reload(); + describe('on reload', () => { - waitForSpinnerToDisappear(); - exist(vorgangList.getRoot()); - exist(vorgangStayInList.getRoot()); - notExist(vorgangDisappearInList.getRoot()); + beforeEach(() => { + doSearchWith(requestId); + }) + + it('should filter list and keep criteria on reload', () => { + reload(); + waitForSpinnerToDisappear(); + + exist(vorgangList.getRoot()); + exist(vorgangStayInList.getRoot()); + notExist(vorgangDisappearInList.getRoot()); + }) + + it('should keep search criteria', () => { + reload(); + waitForSpinnerToDisappear(); + + exist(mainPage.getVorgangSearch().getRoot()) + haveValue(mainPage.getVorgangSearch().getInput(), requestId); + }) }) - it('should show unfiltered list after navigate to vorgang detail and back', () => { - doSearch(); + describe('navigate with filtered list to vorgang detail', () => { - waitForSpinnerToDisappear(); - exist(vorgangList.getRoot()); - vorgangStayInList.getRoot().click(); + beforeEach(() => { + doSearchWith(requestId); - exist(vorgangPage.getVorgangDetailHeader().getRoot()); - vorgangPage.getSubnavigation().clickBackButton(); + waitForSpinnerToDisappear(); + exist(vorgangList.getRoot()); + vorgangStayInList.getRoot().click(); + exist(vorgangPage.getVorgangDetailHeader().getRoot()); + }) + + describe('and navigate back', () => { + + it('should show unfiltered list after navigate back to list', () => { + vorgangPage.getSubnavigation().clickBackButton(); + waitForSpinnerToDisappear(); + + exist(vorgangList.getRoot()); + exist(vorgangStayInList.getRoot()); + exist(vorgangDisappearInList.getRoot()); + }) + }) + }) + }) + + describe('filter by preview list', () => { + + const vorgangName: string = 'VorgangMatchBySearch'; + const vorgang: VorgangE2E = { ...createVorgang(), name: vorgangName }; + + const vorgangOtherName: string = 'VorgangOther'; + const vorgangOther: VorgangE2E = { ...buildVorgang(generate12ByteId(), vorgangOtherName), status: VorgangStatusE2E.NEU }; + + const previewListItemVorgang: VorgangSearchPreviewListItemE2EComponent = mainPage.getVorgangSearch().getVorgangSearchPreviewListItem(vorgang.name); + const previewListItemVorgangOther: VorgangSearchPreviewListItemE2EComponent = mainPage.getVorgangSearch().getVorgangSearchPreviewListItem(vorgangOther.name); + + before(() => { + initVorgaenge([vorgang, vorgangOther]) + + loginAsSabine(); - waitForSpinnerToDisappear(); exist(vorgangList.getRoot()); - exist(vorgangStayInList.getRoot()); - exist(vorgangDisappearInList.getRoot()); + waitForSpinnerToDisappear(); }) - function doSearch(): void { - mainPage.getVorgangSearch().getInput().clear().type(requestId + CypressKeyboardActions.ENTER); - } + after(() => { + dropCollections(); + }) + + it('should NOT show preview list initial', () => { + notExist(mainPage.getVorgangSearch().getVorgangSearchPreviewList()); + }) + + it('should NOT show preview list on 2 character', () => { + mainPage.getVorgangSearch().getInput().clear().type(vorgangName.substring(0, 2)); + + notExist(mainPage.getVorgangSearch().getVorgangSearchPreviewList()); + }) + + it('should show content of preview list on 3 character', () => { + mainPage.getVorgangSearch().getInput().clear().type(vorgangName.substring(0, 3)); + + exist(previewListItemVorgang.getRoot()); + exist(previewListItemVorgangOther.getRoot()); + }) + + describe('preview list item', () => { + + beforeEach(() => { + mainPage.getVorgangSearch().getInput().clear().type(vorgangName); + exist(previewListItemVorgang.getRoot()); + }) + + it('should show created at', () => { + exist(previewListItemVorgang.getCreatedAt()); + }) + + it('should show vorgang name', () => { + exist(previewListItemVorgang.getVorgangName()); + }) + + it('should show vorgang aktenzeichen', () => { + exist(previewListItemVorgang.getVorgangAktenzeichen()); + }) + }) + + describe('select vorgang in vorganglist preview list', () => { + + it('should navigate to vorgang on selection', () => { + mainPage.getVorgangSearch().getInput().clear().type(vorgangName); + exist(previewListItemVorgang.getRoot()); + + previewListItemVorgang.getRoot().click(); + + exist(vorgangPage.getVorgangDetailHeader().getRoot()); + haveText(vorgangPage.getVorgangDetailHeader().getName(), vorgangName); + }) + }) + + describe('select vorgang in vorgangdetail preview list', () => { + + it('should navigate to vorgang on selection', () => { + mainPage.getVorgangSearch().getInput().clear().type(vorgangOtherName); + exist(previewListItemVorgangOther.getRoot()); + + previewListItemVorgangOther.getRoot().click(); + + exist(vorgangPage.getVorgangDetailHeader().getRoot()); + haveText(vorgangPage.getVorgangDetailHeader().getName(), vorgangOtherName); + }) + }) }) describe('filter by all possible fields', () => { @@ -209,14 +321,10 @@ describe('VorgangList Suche', () => { waitForSpinnerToDisappear(); notExist(byVorgangName.getRoot()); }) - - function doSearchWithKeyboar(searchBy: string): void { - mainPage.getVorgangSearch().getInput().clear().type(searchBy + CypressKeyboardActions.ENTER); - } - - function doSearchWith(searchBy: string): void { - mainPage.getVorgangSearch().getInput().clear().type(searchBy + CypressKeyboardActions.ENTER); - } }) }) + + function doSearchWith(searchBy: string): void { + mainPage.getVorgangSearch().getInput().clear().type(searchBy + CypressKeyboardActions.ENTER); + } }); diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage-authorize-by-role.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage-authorize-by-role.e2e-spec.ts index 401d39adfab26d02d3c752ea772d34378fbf3028..a193e8f15c51fd6e2921042a296e5716bb4e6958 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage-authorize-by-role.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage-authorize-by-role.e2e-spec.ts @@ -9,7 +9,7 @@ import { loginAsPeter, UserRoleE2E } from 'apps/goofy-e2e/src/support/user-util' import { buildVorgang, initVorgaenge } from 'apps/goofy-e2e/src/support/vorgang-util'; import { createWiedervorlageNeuUriByVorgangId } from 'apps/goofy-e2e/src/support/wiedervorlage-util'; -describe('Wiedervorlage should be authorized by role', () => { +describe.skip('FIXME OZG-2065 Wiedervorlage should be authorized by role', () => { const mainPage: MainPage = new MainPage(); const snackbar: SnackBarE2EComponent = mainPage.getSnackBar(); diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-autocomplete-options-content/vorgang-search-autocomplete-options-content.component.html b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-autocomplete-options-content/vorgang-search-autocomplete-options-content.component.html index d47402a3718375dadcde001207b4333e39ec0f99..26bd8a7343822c795e15c351321ab6d6126aec6f 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-autocomplete-options-content/vorgang-search-autocomplete-options-content.component.html +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-autocomplete-options-content/vorgang-search-autocomplete-options-content.component.html @@ -1,17 +1,14 @@ <div class="line"> - <div> - <mat-icon class="material-icons-outlined" aria-label="Name" aria-hidden="false">assignment_ind</mat-icon> - </div> <div> <mat-icon svgIcon="incoming"></mat-icon> - <span>{{ vorgang.createdAt | formatToPrettyDate }}</span> + <span data-test-id="preview-list-item-created-at">{{ vorgang.createdAt | formatToPrettyDate }}</span> </div> </div> <div class="line"> - <span class="name">{{vorgang.name}}</span> + <span class="name" data-test-id="preview-list-item-vorgang-name">{{vorgang.name}}</span> </div> <div class="line"> - <div> + <div data-test-id="preview-list-item-vorgang-aktenzeichen"> <mat-icon svgIcon="az"></mat-icon> <span goofy-client-aktenzeichen [vorgang]="vorgang"></span> </div> diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.html b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.html index ea4be3571831b1c7aff797019dcca17c7ce7487c..367e65c10c957d68de721ca0384354e18d0b1400 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.html +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.html @@ -1,5 +1,5 @@ <button *ngIf="formService.hasSearchString()" data-test-id="clear-button" - (click)="formService.clear(); searchInput.focus()" + (click)="formService.clearSearchField(); clear.emit()" class="clear-button" type="button" mat-icon-button aria-label="Suchfeld leeren"> diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.spec.ts b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.spec.ts index 433637b39c17bfb0053a46c799eb4b8ece1ccf5f..04c41468dd5bf85237d9c77697c27f74af5524f7 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.spec.ts +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.spec.ts @@ -1,6 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { FormBuilder } from '@angular/forms'; import { MatIcon } from '@angular/material/icon'; +import { EMPTY_STRING } from '@goofy-client/tech-shared'; import { mock } from '@goofy-client/test-utils'; import { DataTest } from 'libs/tech-shared/test/data-test'; import { VorgangSearchFormService } from '../vorgang-search.formservice'; @@ -44,7 +45,7 @@ describe('VorgangSearchClearButtonComponent', () => { describe('clear button', () => { it('should not show on empty search string', () => { - searchFormService.hasSearchString.mockReturnValue(null); + searchFormService.hasSearchString.mockReturnValue(EMPTY_STRING); fixture.detectChanges(); const button = fixture.nativeElement.querySelector(clearButton); diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.ts b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.ts index a9f2e49cfdb5414b78210e7bbf56ae35c66ed3d6..8d4cdb6b33bda551b3d2b0c54ce3fc29317d45a9 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.ts +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search-clear-button/vorgang-search-clear-button.component.ts @@ -1,13 +1,14 @@ -import { Component } from '@angular/core'; +import { Component, EventEmitter, Output } from '@angular/core'; import { VorgangSearchFormService } from '../vorgang-search.formservice'; @Component({ - selector: 'goofy-client-vorgang-search-clear-button', - templateUrl: './vorgang-search-clear-button.component.html', - styleUrls: ['./vorgang-search-clear-button.component.scss'] + selector: 'goofy-client-vorgang-search-clear-button', + templateUrl: './vorgang-search-clear-button.component.html', + styleUrls: ['./vorgang-search-clear-button.component.scss'] }) export class VorgangSearchClearButtonComponent { - constructor(public formService: VorgangSearchFormService) { } + constructor(public formService: VorgangSearchFormService) { } + @Output() clear: EventEmitter<void> = new EventEmitter(); } \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.html b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.html index 8b8c73a9576c2652bc48d8f22900066c2143a29f..8ca8947ae0bdf6346d464d36cb5e6229db7f47c5 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.html +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.html @@ -8,7 +8,7 @@ placeholder="Vorgang suchen" aria-label="Vorgang suchen" type="text" - maxlength="32" + maxlength="50" [matAutocomplete]="searchAutoComplete" [formControlName]="formService.SEARCH_FIELD" name="searchString" /> @@ -16,17 +16,18 @@ <mat-autocomplete #searchAutoComplete="matAutocomplete" class="vorgang-search" (optionSelected)="formService.submitByPreviewList($event.option.value)"> <goofy-client-spinner [stateResource]="vorgangSearchPreviewList" [class.autocomplete-spinner]="vorgangSearchPreviewList.loading"></goofy-client-spinner> - <ng-container *ngIf="vorgangSearchPreviewList.resource"> + <ng-container *ngIf="vorgangSearchPreviewList.resource" data-test-id="search-preview-list"> <mat-option *ngFor="let vorgang of (vorgangSearchPreviewList.resource | toEmbeddedResources: vorgangListLinkRel.VORGANG_HEADER_LIST)" [value]="vorgang"> - <goofy-client-vorgang-search-autocomplete-options-content *ngIf="vorgang | hasLink: vorgangHeaderLinkRel.VORGANG_WITH_EINGANG" data-test-class="search-preview-option" - [vorgang]="vorgang"> - </goofy-client-vorgang-search-autocomplete-options-content> + <ng-container *ngIf="vorgang | hasLink: vorgangHeaderLinkRel.VORGANG_WITH_EINGANG"> + <goofy-client-vorgang-search-autocomplete-options-content [vorgang]="vorgang" [attr.data-test-id]="'search-preview-list-item-' + vorgang.name | convertForDataTest"> + </goofy-client-vorgang-search-autocomplete-options-content> + </ng-container> </mat-option> </ng-container> </mat-autocomplete> </mat-form-field> - <goofy-client-vorgang-search-clear-button></goofy-client-vorgang-search-clear-button> + <goofy-client-vorgang-search-clear-button (clear)="searchInput.focus()"></goofy-client-vorgang-search-clear-button> -</form> +</form> \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts index e73e30ad8bc84c8d06dc2410ed108162f5efff03..a0b131ee980e6759c0ca3a1d258aadd8a3de7b99 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts @@ -6,7 +6,7 @@ import { MatIcon } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; -import { createEmptyStateResource, createStateResource, EMPTY_STRING, HasLinkPipe, ToEmbeddedResourcesPipe } from '@goofy-client/tech-shared'; +import { ConvertForDataTestPipe, createEmptyStateResource, createStateResource, EMPTY_STRING, HasLinkPipe, ToEmbeddedResourcesPipe } from '@goofy-client/tech-shared'; import { mock } from '@goofy-client/test-utils'; import { SpinnerComponent } from '@goofy-client/ui'; import { SearchInfo, VorgangHeaderLinkRel, VorgangListService } from '@goofy-client/vorgang-shared'; @@ -37,6 +37,7 @@ describe('VorgangSearchComponent', () => { MatIcon, ToEmbeddedResourcesPipe, HasLinkPipe, + ConvertForDataTestPipe, MockComponent(VorgangSearchAutocompleteOptionsContentComponent), MockComponent(VorgangSearchClearButtonComponent), MockComponent(SpinnerComponent) diff --git a/goofy-server/pom.xml b/goofy-server/pom.xml index acc788f17a62e0048af95dce6dfd25d8c130d832..cdcccb547aaa21d94f047fbcb2a6744f7fbc0b65 100644 --- a/goofy-server/pom.xml +++ b/goofy-server/pom.xml @@ -127,13 +127,6 @@ <artifactId>commons-beanutils</artifactId> </dependency> - <!-- Logging/Monitoring --> - <dependency> - <groupId>io.micrometer</groupId> - <artifactId>micrometer-registry-prometheus</artifactId> - <scope>runtime</scope> - </dependency> - <!-- Test --> <dependency> <groupId>org.springframework.security</groupId> diff --git a/goofy-server/src/main/resources/application.yml b/goofy-server/src/main/resources/application.yml index 8d7b6a13cc4c208a41e7faa34b28f3ec47708eaf..d940267afa26501359680abba341e55c2d09608f 100644 --- a/goofy-server/src/main/resources/application.yml +++ b/goofy-server/src/main/resources/application.yml @@ -40,7 +40,7 @@ management: endpoints: web: exposure: - include: "*" + include: health,prometheus goofy: production: true