From 2c0fe18a13c3fa9dee0c2225cdbfe70925b44909 Mon Sep 17 00:00:00 2001 From: Albert <Albert.Bruns@mgm-tp.com> Date: Thu, 6 Mar 2025 17:33:03 +0100 Subject: [PATCH] OZG-725-7891 dialog component with zufi search --- .../cancel-dialog-button.component.spec.ts | 49 ++++- .../cancel-dialog-button.component.ts | 38 +++- ...y-ozgcloud-button-container.component.html | 4 +- ...warding-dialog-container.component.spec.ts | 24 +- .../forwarding-dialog-container.component.ts | 11 + .../forwarding-button.component.html | 3 + .../forwarding-button.component.spec.ts | 26 +++ .../forwarding-button.component.ts | 11 + .../forwarding-dialog.component.html | 16 +- .../forwarding-dialog.component.spec.ts | 15 +- .../forwarding-dialog.component.ts | 24 +- .../libs/zustaendige-stelle/src/index.ts | 1 + ...ganisations-einheit-container.component.ts | 2 +- ...h-zustaendige-stelle-dialog.component.html | 8 +- ...ustaendige-stelle-dialog.component.spec.ts | 189 +--------------- ...rch-zustaendige-stelle-dialog.component.ts | 38 +--- ...ndige-stelle-form-container.component.html | 7 + ...ge-stelle-form-container.component.spec.ts | 207 ++++++++++++++++++ ...aendige-stelle-form-container.component.ts | 49 +++++ ...rch-zustaendige-stelle-form.component.html | 0 ...-zustaendige-stelle-form.component.spec.ts | 8 +- ...earch-zustaendige-stelle-form.component.ts | 2 +- .../src/lib/zustaendige-stelle.module.ts | 5 +- 23 files changed, 462 insertions(+), 275 deletions(-) create mode 100644 alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html create mode 100644 alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.spec.ts create mode 100644 alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts create mode 100644 alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.html create mode 100644 alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.spec.ts create mode 100644 alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.ts rename alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/{ => search-zustaendige-stelle-form-container}/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.html (100%) rename alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/{ => search-zustaendige-stelle-form-container}/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.spec.ts (93%) rename alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/{ => search-zustaendige-stelle-form-container}/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.ts (94%) diff --git a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.spec.ts b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.spec.ts index 110c81e4d4..6adabee968 100644 --- a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.spec.ts +++ b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.spec.ts @@ -1,4 +1,4 @@ -import { dispatchEventFromFixture, mock, Mock, MockEvent } from '@alfa-client/test-utils'; +import { dispatchEventFromFixture, existsAsHtmlElement, mock, Mock, MockEvent } from '@alfa-client/test-utils'; import { OzgcloudDialogService } from '@alfa-client/ui'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ButtonComponent } from '@ods/system'; @@ -12,7 +12,8 @@ describe('CancelDialogButtonComponent', () => { let dialogService: Mock<OzgcloudDialogService>; - const cancelDialog: string = getDataTestIdOf('cancel-dialog'); + const cancelDialogButton: string = getDataTestIdOf('cancel-dialog-button'); + const cancelDialogIconButton: string = getDataTestIdOf('cancel-dialog-icon-button'); beforeEach(async () => { dialogService = mock(OzgcloudDialogService); @@ -39,9 +40,51 @@ describe('CancelDialogButtonComponent', () => { describe('on button click', () => { it('should call dialog service to close all', () => { - dispatchEventFromFixture(fixture, cancelDialog, MockEvent.CLICK); + dispatchEventFromFixture(fixture, cancelDialogButton, MockEvent.CLICK); expect(dialogService.closeAll).toHaveBeenCalled(); }); }); + + describe('template', () => { + describe('button', () => { + beforeEach(() => { + component.showAsIconButton = false; + + fixture.detectChanges(); + }); + + it('should be visible when showAsIconButton is false', () => { + existsAsHtmlElement(fixture, cancelDialogButton); + }); + + it('should call dialog service to close all', () => { + dispatchEventFromFixture(fixture, cancelDialogButton, MockEvent.CLICK); + + expect(dialogService.closeAll).toHaveBeenCalled(); + }); + }); + + describe('icon button', () => { + beforeEach(() => { + component.showAsIconButton = true; + + fixture.detectChanges(); + }); + + it('should be visible when showAsIconButton is true', () => { + component.showAsIconButton = true; + + fixture.detectChanges(); + + existsAsHtmlElement(fixture, cancelDialogIconButton); + }); + + it('should call dialog service to close all', () => { + dispatchEventFromFixture(fixture, cancelDialogIconButton, MockEvent.CLICK); + + expect(dialogService.closeAll).toHaveBeenCalled(); + }); + }); + }); }); diff --git a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts index 5d80db0f4e..7c41c1bbcd 100644 --- a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts +++ b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts @@ -1,22 +1,40 @@ import { OzgcloudDialogService } from '@alfa-client/ui'; -import { Component, inject } from '@angular/core'; -import { ButtonComponent } from '@ods/system'; +import { Component, inject, Input } from '@angular/core'; +import { ButtonComponent, CloseIconComponent, TooltipDirective } from '@ods/system'; @Component({ selector: 'ods-cancel-dialog-button', standalone: true, - imports: [ButtonComponent], - template: `<ods-button - (clickEmitter)="cancel()" - variant="outline" - text="Abbrechen" - dataTestId="cancel-dialog" - data-test-id="cancel-dialog" - />`, + imports: [ButtonComponent, CloseIconComponent, TooltipDirective], + template: ` @if (showAsIconButton) { + <ods-button + (clickEmitter)="cancel()" + [tooltip]="'Schließen'" + tooltipAriaType="aria-labelledby" + variant="ghost" + size="fit" + dataTestId="cancel-dialog-icon-button" + data-test-id="cancel-dialog-icon-button" + > + <ng-container icon> + <ods-close-icon class="fill-primary" /> + </ng-container> + </ods-button> + } @else { + <ods-button + (clickEmitter)="cancel()" + variant="outline" + text="Abbrechen" + dataTestId="cancel-dialog-button" + data-test-id="cancel-dialog-button" + /> + }`, }) export class CancelDialogButtonComponent { public readonly dialogService = inject(OzgcloudDialogService); + @Input() showAsIconButton: boolean = false; + public cancel(): void { this.dialogService.closeAll(); } diff --git a/alfa-client/libs/forwarding/src/lib/forward-by-ozgcloud-button-container/forward-by-ozgcloud-button-container.component.html b/alfa-client/libs/forwarding/src/lib/forward-by-ozgcloud-button-container/forward-by-ozgcloud-button-container.component.html index 34e76b0caf..13e96065df 100644 --- a/alfa-client/libs/forwarding/src/lib/forward-by-ozgcloud-button-container/forward-by-ozgcloud-button-container.component.html +++ b/alfa-client/libs/forwarding/src/lib/forward-by-ozgcloud-button-container/forward-by-ozgcloud-button-container.component.html @@ -1,4 +1,4 @@ -<!--@if (vorgangWithEingang | hasLink: vorgangWithEingangLinkRel.FORWARD_BY_OZGCLOUD) {--> +@if (vorgangWithEingang | hasLink: vorgangWithEingangLinkRel.FORWARD_BY_OZGCLOUD) { @if (showAsIconButton) { <ods-open-dialog-button [tooltip]="'Vorgang weiterleiten'" @@ -14,4 +14,4 @@ <ods-forward-vorgang-icon icon class="fill-primary" /> </ods-open-dialog-button> } -<!--}--> +} diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog-container.component.spec.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog-container.component.spec.ts index 8c70ffee40..55f96686b6 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog-container.component.spec.ts +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog-container.component.spec.ts @@ -1,16 +1,34 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { mock, Mock } from '@alfa-client/test-utils'; +import { SearchOrganisationsEinheitContainerComponent } from '@alfa-client/zustaendige-stelle'; +import { OrganisationsEinheitService, ZUSTAENDIGE_STELLE_SERVICE } from '@alfa-client/zustaendige-stelle-shared'; +import { MockComponent } from 'ng-mocks'; import { ForwardingDialogContainerComponent } from './forwarding-dialog-container.component'; +import { ForwardingDialogComponent } from './forwarding-dialog/forwarding-dialog.component'; describe('ForwardingDialogContainerComponent', () => { let component: ForwardingDialogContainerComponent; let fixture: ComponentFixture<ForwardingDialogContainerComponent>; + let organisationsEinheitService: Mock<OrganisationsEinheitService>; + beforeEach(async () => { + organisationsEinheitService = mock(OrganisationsEinheitService); + TestBed.overrideComponent(SearchOrganisationsEinheitContainerComponent, { + set: { + providers: [ + { + provide: ZUSTAENDIGE_STELLE_SERVICE, + useValue: organisationsEinheitService, + }, + ], + }, + }); await TestBed.configureTestingModule({ - imports: [ForwardingDialogContainerComponent] - }) - .compileComponents(); + imports: [ForwardingDialogContainerComponent], + declarations: [MockComponent(ForwardingDialogComponent)], + }).compileComponents(); fixture = TestBed.createComponent(ForwardingDialogContainerComponent); component = fixture.componentInstance; diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog-container.component.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog-container.component.ts index f7014e77c7..f5ce07c1e2 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog-container.component.ts +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog-container.component.ts @@ -1,3 +1,7 @@ +import { ResourceRepository } from '@alfa-client/tech-shared'; +import { VorgangService } from '@alfa-client/vorgang-shared'; +import { createOrganisationEinheitService } from '@alfa-client/zustaendige-stelle'; +import { ZUSTAENDIGE_STELLE_SERVICE } from '@alfa-client/zustaendige-stelle-shared'; import { Component } from '@angular/core'; import { ForwardingDialogComponent } from './forwarding-dialog/forwarding-dialog.component'; @@ -6,5 +10,12 @@ import { ForwardingDialogComponent } from './forwarding-dialog/forwarding-dialog standalone: true, imports: [ForwardingDialogComponent], templateUrl: './forwarding-dialog-container.component.html', + providers: [ + { + provide: ZUSTAENDIGE_STELLE_SERVICE, + useFactory: createOrganisationEinheitService, + deps: [ResourceRepository, VorgangService], + }, + ], }) export class ForwardingDialogContainerComponent {} 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 new file mode 100644 index 0000000000..aa520b8d99 --- /dev/null +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.html @@ -0,0 +1,3 @@ +<ods-button-with-spinner text="Weiterleiten" variant="outline" dataTestId="forward-by-ozgcloud-button"> + <ods-forward-vorgang-icon icon class="fill-primary" /> +</ods-button-with-spinner> \ No newline at end of file diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.spec.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.spec.ts new file mode 100644 index 0000000000..ec3ee8288b --- /dev/null +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.spec.ts @@ -0,0 +1,26 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ButtonWithSpinnerComponent } from '@ods/component'; +import { ForwardVorgangIconComponent } from '@ods/system'; +import { MockComponent } from 'ng-mocks'; +import { ForwardingButtonComponent } from './forwarding-button.component'; + +describe('ForwardingButtonComponent', () => { + let component: ForwardingButtonComponent; + let fixture: ComponentFixture<ForwardingButtonComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ForwardingButtonComponent], + declarations: [MockComponent(ForwardVorgangIconComponent), MockComponent(ButtonWithSpinnerComponent)], + }).compileComponents(); + + fixture = TestBed.createComponent(ForwardingButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); 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 new file mode 100644 index 0000000000..46a93fd5af --- /dev/null +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-button/forwarding-button.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { ButtonWithSpinnerComponent } from '@ods/component'; +import { ForwardVorgangIconComponent } from '@ods/system'; + +@Component({ + selector: 'alfa-forwarding-button', + standalone: true, + imports: [ButtonWithSpinnerComponent, ForwardVorgangIconComponent], + templateUrl: './forwarding-button.component.html', +}) +export class ForwardingButtonComponent {} 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 3c197754b4..4a8653498c 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 @@ -1,13 +1,11 @@ -<div class="block bg-background-100 flex flex-col gap-4 p-8"> - <div class="flex space-between"> - <h1>Vorgang weiterleiten</h1> - <ods-cancel-dialog-button /> +<div class="block bg-background-100 flex w-[620px] flex-col gap-4 p-8"> + <div class="flex justify-between items-center"> + <h1 class="text-xl font-semibold text-primary">Vorgang weiterleiten</h1> + <ods-cancel-dialog-button showAsIconButton="true"/> </div> - - <div> - <ods-button-with-spinner label="Weiterleiten" variant="outline" dataTestId="forward-by-ozgcloud-button"> - <ods-forward-vorgang-icon icon class="fill-primary" /> - </ods-button-with-spinner> + <alfa-search-zustaendige-stelle-form-container cdkFocusInitial/> + <div class="flex gap-4" > + <alfa-forwarding-button /> <ods-cancel-dialog-button /> </div> </div> diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts index 40f13743f8..d45ef9176a 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.spec.ts @@ -1,5 +1,8 @@ +import { ZustaendigeStelleModule } from '@alfa-client/zustaendige-stelle'; import { ComponentFixture, TestBed } from '@angular/core/testing'; - +import { CancelDialogButtonComponent } from '@ods/component'; +import { MockComponent, MockModule } from 'ng-mocks'; +import { ForwardingButtonComponent } from './forwarding-button/forwarding-button.component'; import { ForwardingDialogComponent } from './forwarding-dialog.component'; describe('ForwardingDialogComponent', () => { @@ -8,9 +11,13 @@ describe('ForwardingDialogComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [ForwardingDialogComponent] - }) - .compileComponents(); + imports: [ForwardingDialogComponent], + declarations: [ + MockComponent(CancelDialogButtonComponent), + MockComponent(ForwardingButtonComponent), + MockModule(ZustaendigeStelleModule), + ], + }).compileComponents(); fixture = TestBed.createComponent(ForwardingDialogComponent); component = fixture.componentInstance; diff --git a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.ts b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.ts index ccc83a659e..f864971b37 100644 --- a/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.ts +++ b/alfa-client/libs/forwarding/src/lib/forwarding-dialog-container/forwarding-dialog/forwarding-dialog.component.ts @@ -1,27 +1,21 @@ -import { VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared'; import { ZustaendigeStelleModule } from '@alfa-client/zustaendige-stelle'; -import { OrganisationsEinheitService, ZUSTAENDIGE_STELLE_SERVICE } from '@alfa-client/zustaendige-stelle-shared'; -import { Component, EventEmitter, Output } from '@angular/core'; +import { A11yModule } from '@angular/cdk/a11y'; +import { Component, EventEmitter, Input, Output } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { Resource } from '@ngxp/rest'; -import { ButtonWithSpinnerComponent, CancelDialogButtonComponent } from '@ods/component'; -import { ForwardVorgangIconComponent } from '@ods/system'; +import { CancelDialogButtonComponent } from '@ods/component'; +import { InstantSearchResult } from '@ods/system'; +import { ForwardingButtonComponent } from './forwarding-button/forwarding-button.component'; @Component({ selector: 'alfa-forwarding-dialog', standalone: true, - imports: [ - CancelDialogButtonComponent, - ButtonWithSpinnerComponent, - ForwardVorgangIconComponent, - ReactiveFormsModule, - ZustaendigeStelleModule, - ], + imports: [A11yModule, CancelDialogButtonComponent, ReactiveFormsModule, ZustaendigeStelleModule, ForwardingButtonComponent], templateUrl: './forwarding-dialog.component.html', - providers: [{ provide: ZUSTAENDIGE_STELLE_SERVICE, useValue: OrganisationsEinheitService }], }) export class ForwardingDialogComponent { + @Input() searchResults: InstantSearchResult<Resource>[]; @Output() selectSearchResult: EventEmitter<Resource> = new EventEmitter<Resource>(); - @Output() public search: EventEmitter<string> = new EventEmitter(); - protected readonly vorgangLinkRel = VorgangWithEingangLinkRel; + @Output() search: EventEmitter<string> = new EventEmitter(); + @Output() clearSearchResult: EventEmitter<void> = new EventEmitter(); } diff --git a/alfa-client/libs/zustaendige-stelle/src/index.ts b/alfa-client/libs/zustaendige-stelle/src/index.ts index 114de029cc..014f02c0b9 100644 --- a/alfa-client/libs/zustaendige-stelle/src/index.ts +++ b/alfa-client/libs/zustaendige-stelle/src/index.ts @@ -23,4 +23,5 @@ */ export * from './lib/search-externe-fachstelle-container/search-externe-fachstelle-container.component'; export * from './lib/search-organisations-einheit-container/search-organisations-einheit-container.component'; +export * from './lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component'; export * from './lib/zustaendige-stelle.module'; diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.ts index bd7e92ef28..5706c8cde9 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.ts +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-organisations-einheit-container/search-organisations-einheit-container.component.ts @@ -83,7 +83,7 @@ export class SearchOrganisationsEinheitContainerComponent implements OnInit, OnD } } -function createOrganisationEinheitService( +export function createOrganisationEinheitService( resourceRepository: ResourceRepository, vorgangService: VorgangService, ): OrganisationsEinheitService { diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.html b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.html index 9ff703cfa4..bc4470c540 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.html +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.html @@ -30,11 +30,5 @@ <ods-close-icon class="fill-primary" icon /> </ods-button> </div> - <alfa-search-zustaendige-stelle-form - data-test-id="search-organisations-einheit" - [searchResults]="searchResults$ | async" - (search)="search($event)" - (selectSearchResult)="selectSearchResult($event)" - (clearSearchResult)="clearSearchResult()" - ></alfa-search-zustaendige-stelle-form> + <alfa-search-zustaendige-stelle-form-container (searchResultSelected)="searchResultSelected($event)" /> </div> diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.spec.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.spec.ts index 1b4f822ac5..0cd130bb32 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.spec.ts +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.spec.ts @@ -22,46 +22,25 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { ToEmbeddedResourcesPipe } from '@alfa-client/tech-shared'; -import { - createDialogRefMock, - DialogRefMock, - EventData, - getMockComponent, - Mock, - mock, - triggerEvent, -} from '@alfa-client/test-utils'; -import { - OrganisationsEinheitResource, - OrganisationsEinheitService, - ZUSTAENDIGE_STELLE_SERVICE, -} from '@alfa-client/zustaendige-stelle-shared'; +import { createDialogRefMock, DialogRefMock, Mock, mock } from '@alfa-client/test-utils'; +import { OrganisationsEinheitService, ZUSTAENDIGE_STELLE_SERVICE } from '@alfa-client/zustaendige-stelle-shared'; import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { faker } from '@faker-js/faker'; import { Resource } from '@ngxp/rest'; -import { ButtonComponent, CloseIconComponent, InstantSearchResult } from '@ods/system'; -import { createInstantSearchResult } from 'libs/design-system/src/test/search'; +import { ButtonComponent, CloseIconComponent } from '@ods/system'; import { MockComponent } from 'ng-mocks'; -import { of } from 'rxjs'; -import { getDataTestIdOf } from '../../../../tech-shared/test/data-test'; -import { createOrganisationsEinheitResource } from '../../../../zustaendige-stelle-shared/test/organisations-einheit'; import { SearchZustaendigeStelleDialogComponent } from '././search-zustaendige-stelle-dialog.component'; -import { SearchZustaendigeStelleFormComponent } from './search-zustaendige-stelle-form/search-zustaendige-stelle-form.component'; +import { SearchZustaendigeStelleFormContainerComponent } from './search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component'; describe('SearchZustaendigeStelleDialogComponent', () => { let component: SearchZustaendigeStelleDialogComponent<Resource>; let fixture: ComponentFixture<SearchZustaendigeStelleDialogComponent<Resource>>; - const searchOrganisationsEinheitComp: string = getDataTestIdOf('search-organisations-einheit'); - const service: Mock<OrganisationsEinheitService> = mock(OrganisationsEinheitService); const title: string = 'dummyTitle'; let dialogRefMock: DialogRefMock; - const organisationsEinheitResource: OrganisationsEinheitResource = createOrganisationsEinheitResource(); - beforeEach(() => { dialogRefMock = createDialogRefMock(); }); @@ -71,7 +50,7 @@ describe('SearchZustaendigeStelleDialogComponent', () => { declarations: [ SearchZustaendigeStelleDialogComponent, ToEmbeddedResourcesPipe, - MockComponent(SearchZustaendigeStelleFormComponent), + MockComponent(SearchZustaendigeStelleFormContainerComponent), MockComponent(ButtonComponent), MockComponent(CloseIconComponent), ], @@ -100,149 +79,11 @@ describe('SearchZustaendigeStelleDialogComponent', () => { expect(component).toBeTruthy(); }); - describe('ngOnInit', () => { - it('should call service', () => { - component.ngOnInit(); - - expect(service.getSearchResultList).toHaveBeenCalled(); - }); - }); - - describe('onKeyDownHandler', () => { - it('should prevent default behavior for enter key on non buttons', () => { - const keyboardEvent: KeyboardEvent = { - ...new KeyboardEvent('enter'), - key: 'Enter', - preventDefault: jest.fn(), - target: new EventTarget(), - }; - - component.onKeyDownHandler(keyboardEvent); - - expect(keyboardEvent.preventDefault).toHaveBeenCalled(); - }); - - it('should not prevent default behavior for enter key on buttons', () => { - const keyboardEvent: KeyboardEvent = { - ...new KeyboardEvent('enter'), - key: 'Enter', - preventDefault: jest.fn(), - target: { ...new EventTarget(), tagName: 'BUTTON' } as Element, - }; - - component.onKeyDownHandler(keyboardEvent); - - expect(keyboardEvent.preventDefault).not.toHaveBeenCalled(); - }); - }); - - describe('search organisationsEinheit component', () => { - const result: InstantSearchResult<Resource> = createInstantSearchResult(); - - beforeEach(() => { - component.searchResults$ = of([result]); - fixture.detectChanges(); - }); - - it('should be called with searchResult', () => { - const comp: SearchZustaendigeStelleFormComponent<Resource> = getMockComponent< - SearchZustaendigeStelleFormComponent<Resource> - >(fixture, SearchZustaendigeStelleFormComponent); - - expect(comp.searchResults).toEqual([result]); - }); - - it('should call search on openSearchDialog output', () => { - component.search = jest.fn(); - const searchBy: string = faker.word.sample(); - const eventData: EventData<SearchZustaendigeStelleDialogComponent<Resource>> = { - fixture, - elementSelector: searchOrganisationsEinheitComp, - name: 'search', - data: searchBy, - }; - - triggerEvent(eventData); - - expect(component.search).toHaveBeenCalledWith(searchBy); - }); - - it('should call selectSearchResult on selectSearchResult output', () => { - component.selectSearchResult = jest.fn(); - - const eventData: EventData<SearchZustaendigeStelleDialogComponent<Resource>> = { - fixture, - elementSelector: searchOrganisationsEinheitComp, - name: 'selectSearchResult', - data: organisationsEinheitResource, - }; - - triggerEvent(eventData); - - expect(component.selectSearchResult).toHaveBeenCalledWith(organisationsEinheitResource); - }); - - it('should call clearSearchResult', () => { - component.clearSearchResult = jest.fn(); - - const eventData: EventData<SearchZustaendigeStelleDialogComponent<Resource>> = { - fixture, - elementSelector: searchOrganisationsEinheitComp, - name: 'clearSearchResult', - data: organisationsEinheitResource, - }; - - triggerEvent(eventData); - - expect(component.clearSearchResult).toHaveBeenCalled(); - }); - }); - - describe('search', () => { - const searchBy: string = faker.word.sample(); - - it('should call service', () => { - component.search(searchBy); - - expect(service.search).toHaveBeenCalledWith(searchBy); - }); - }); - - describe('select search result', () => { - it('should set select result', () => { - component.selectSearchResult(organisationsEinheitResource); - - expect(service.selectSearchResult).toHaveBeenCalledWith(organisationsEinheitResource); - }); - - it('should call service', () => { - component.selectSearchResult(organisationsEinheitResource); - - expect(service.clearSearchResult).toHaveBeenCalled(); - }); - - it('should close dialog with result', () => { - component.selectSearchResult(organisationsEinheitResource); - - expect(dialogRefMock.close).toHaveBeenCalledWith(organisationsEinheitResource); - }); - }); - - describe('clear search result', () => { - it('should call service', () => { - component.clearSearchResult(); - - expect(service.clearSearchResult).toHaveBeenCalled(); - }); - }); - describe('close dialog', () => { it('should clear search result', () => { - component.clearSearchResult = jest.fn(); - component.closeDialog(); - expect(component.clearSearchResult).toHaveBeenCalled(); + expect(service.clearSearchResult).toHaveBeenCalled(); }); it('should close dialog', () => { @@ -251,22 +92,4 @@ describe('SearchZustaendigeStelleDialogComponent', () => { expect(dialogRefMock.close).toHaveBeenCalled(); }); }); - - describe('isNotButtonElement', () => { - it('should return false', () => { - const element: Element = { tagName: 'BUTTON' } as Element; - - const result: boolean = component.isNotButtonElement(element); - - expect(result).toBe(false); - }); - - it('should return true', () => { - const element: Element = { tagName: 'INPUT' } as Element; - - const result: boolean = component.isNotButtonElement(element); - - expect(result).toBe(true); - }); - }); }); diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.ts index 492c3c8006..b00b5a3a72 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.ts +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component.ts @@ -23,7 +23,7 @@ */ import { ZUSTAENDIGE_STELLE_SERVICE, ZustaendigeStelleService } from '@alfa-client/zustaendige-stelle-shared'; import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; -import { Component, HostListener, Inject, OnInit } from '@angular/core'; +import { Component, Inject } from '@angular/core'; import { Resource } from '@ngxp/rest'; import { InstantSearchResult } from '@ods/system'; import { Observable } from 'rxjs'; @@ -33,47 +33,21 @@ import { Observable } from 'rxjs'; selector: 'search-zustaendige-stelle-dialog', templateUrl: './search-zustaendige-stelle-dialog.component.html', }) -export class SearchZustaendigeStelleDialogComponent<T extends Resource> implements OnInit { +export class SearchZustaendigeStelleDialogComponent<T extends Resource> { public searchResults$: Observable<InstantSearchResult<T>[]>; constructor( private dialogRef: DialogRef, - @Inject(ZUSTAENDIGE_STELLE_SERVICE) - private service: ZustaendigeStelleService<T>, + @Inject(ZUSTAENDIGE_STELLE_SERVICE) private service: ZustaendigeStelleService<T>, @Inject(DIALOG_DATA) public title: string, ) {} - ngOnInit(): void { - this.searchResults$ = this.service.getSearchResultList(); - } - - @HostListener('document:keydown', ['$event']) - onKeyDownHandler(e: KeyboardEvent) { - if (e.key === 'Enter' && this.isNotButtonElement(e.target as Element)) { - e.preventDefault(); - } - } - - public search(searchBy: string): void { - this.service.search(searchBy); - } - - public selectSearchResult(zustaendigeStelle: T): void { - this.service.selectSearchResult(zustaendigeStelle); - this.service.clearSearchResult(); - this.dialogRef.close(zustaendigeStelle); - } - - public clearSearchResult(): void { - this.service.clearSearchResult(); - } - public closeDialog(): void { - this.clearSearchResult(); + this.service.clearSearchResult(); this.dialogRef.close(); } - public isNotButtonElement(e: Element): boolean { - return e.tagName !== 'BUTTON'; + public searchResultSelected(zustaendigeStelle: T): void { + this.dialogRef.close(zustaendigeStelle); } } diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.html b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.html new file mode 100644 index 0000000000..d96dce831c --- /dev/null +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.html @@ -0,0 +1,7 @@ +<alfa-search-zustaendige-stelle-form + data-test-id="search-organisations-einheit" + [searchResults]="searchResults$ | async" + (search)="search($event)" + (selectSearchResult)="selectSearchResult($event)" + (clearSearchResult)="clearSearchResult()" +></alfa-search-zustaendige-stelle-form> \ No newline at end of file diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.spec.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.spec.ts new file mode 100644 index 0000000000..61763e91ba --- /dev/null +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.spec.ts @@ -0,0 +1,207 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EventData, getMockComponent, mock, Mock, triggerEvent } from '@alfa-client/test-utils'; +import { + OrganisationsEinheitResource, + OrganisationsEinheitService, + ZUSTAENDIGE_STELLE_SERVICE, +} from '@alfa-client/zustaendige-stelle-shared'; +import { faker } from '@faker-js/faker'; +import { Resource } from '@ngxp/rest'; +import { InstantSearchResult } from '@ods/system'; +import { MockComponent } from 'ng-mocks'; +import { of } from 'rxjs'; +import { createInstantSearchResult } from '../../../../../design-system/src/test/search'; +import { getDataTestIdOf } from '../../../../../tech-shared/test/data-test'; +import { createOrganisationsEinheitResource } from '../../../../../zustaendige-stelle-shared/test/organisations-einheit'; +import { SearchZustaendigeStelleFormContainerComponent } from './search-zustaendige-stelle-form-container.component'; +import { SearchZustaendigeStelleFormComponent } from './search-zustaendige-stelle-form/search-zustaendige-stelle-form.component'; + +describe('SearchZustaendigeStelleFormContainerComponent', () => { + let component: SearchZustaendigeStelleFormContainerComponent<Resource>; + let fixture: ComponentFixture<SearchZustaendigeStelleFormContainerComponent<Resource>>; + + let service: Mock<OrganisationsEinheitService>; + + const searchOrganisationsEinheitComp: string = getDataTestIdOf('search-organisations-einheit'); + + const organisationsEinheitResource: OrganisationsEinheitResource = createOrganisationsEinheitResource(); + + beforeEach(async () => { + service = mock(OrganisationsEinheitService); + await TestBed.configureTestingModule({ + imports: [SearchZustaendigeStelleFormContainerComponent], + declarations: [MockComponent(SearchZustaendigeStelleFormComponent)], + providers: [ + { + provide: ZUSTAENDIGE_STELLE_SERVICE, + useValue: service, + }, + ], + }).compileComponents(); + + fixture = TestBed.createComponent(SearchZustaendigeStelleFormContainerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + describe('ngOnInit', () => { + it('should call service', () => { + component.ngOnInit(); + + expect(service.getSearchResultList).toHaveBeenCalled(); + }); + }); + + describe('onKeyDownHandler', () => { + it('should prevent default behavior for enter key on non buttons', () => { + const keyboardEvent: KeyboardEvent = { + ...new KeyboardEvent('enter'), + key: 'Enter', + preventDefault: jest.fn(), + target: new EventTarget(), + }; + + component.onKeyDownHandler(keyboardEvent); + + expect(keyboardEvent.preventDefault).toHaveBeenCalled(); + }); + + it('should not prevent default behavior for enter key on buttons', () => { + const keyboardEvent: KeyboardEvent = { + ...new KeyboardEvent('enter'), + key: 'Enter', + preventDefault: jest.fn(), + target: { ...new EventTarget(), tagName: 'BUTTON' } as Element, + }; + + component.onKeyDownHandler(keyboardEvent); + + expect(keyboardEvent.preventDefault).not.toHaveBeenCalled(); + }); + }); + + describe('search organisationsEinheit component', () => { + const result: InstantSearchResult<Resource> = createInstantSearchResult(); + + beforeEach(() => { + component.searchResults$ = of([result]); + fixture.detectChanges(); + }); + + it('should be called with searchResult', () => { + const comp: SearchZustaendigeStelleFormComponent<Resource> = getMockComponent< + SearchZustaendigeStelleFormComponent<Resource> + >(fixture, SearchZustaendigeStelleFormComponent); + + expect(comp.searchResults).toEqual([result]); + }); + + it('should call search on openSearchDialog output', () => { + component.search = jest.fn(); + const searchBy: string = faker.word.sample(); + const eventData: EventData<SearchZustaendigeStelleFormContainerComponent<Resource>> = { + fixture, + elementSelector: searchOrganisationsEinheitComp, + name: 'search', + data: searchBy, + }; + + triggerEvent(eventData); + + expect(component.search).toHaveBeenCalledWith(searchBy); + }); + + it('should call selectSearchResult on selectSearchResult output', () => { + component.selectSearchResult = jest.fn(); + + const eventData: EventData<SearchZustaendigeStelleFormContainerComponent<Resource>> = { + fixture, + elementSelector: searchOrganisationsEinheitComp, + name: 'selectSearchResult', + data: organisationsEinheitResource, + }; + + triggerEvent(eventData); + + expect(component.selectSearchResult).toHaveBeenCalledWith(organisationsEinheitResource); + }); + + it('should call clearSearchResult', () => { + component.clearSearchResult = jest.fn(); + + const eventData: EventData<SearchZustaendigeStelleFormContainerComponent<Resource>> = { + fixture, + elementSelector: searchOrganisationsEinheitComp, + name: 'clearSearchResult', + data: organisationsEinheitResource, + }; + + triggerEvent(eventData); + + expect(component.clearSearchResult).toHaveBeenCalled(); + }); + }); + + describe('search', () => { + const searchBy: string = faker.word.sample(); + + it('should call service', () => { + component.search(searchBy); + + expect(service.search).toHaveBeenCalledWith(searchBy); + }); + }); + + describe('select search result', () => { + it('should set select result', () => { + component.selectSearchResult(organisationsEinheitResource); + + expect(service.selectSearchResult).toHaveBeenCalledWith(organisationsEinheitResource); + }); + + it('should call service', () => { + component.selectSearchResult(organisationsEinheitResource); + + expect(service.clearSearchResult).toHaveBeenCalled(); + }); + + it('should emit search result selected', () => { + component.searchResultSelected.emit = jest.fn(); + + component.selectSearchResult(organisationsEinheitResource); + + expect(component.searchResultSelected.emit).toHaveBeenCalledWith(organisationsEinheitResource); + }); + }); + + describe('clear search result', () => { + it('should call service', () => { + component.clearSearchResult(); + + expect(service.clearSearchResult).toHaveBeenCalled(); + }); + }); + + describe('isNotButtonElement', () => { + it('should return false', () => { + const element: Element = { tagName: 'BUTTON' } as Element; + + const result: boolean = component.isNotButtonElement(element); + + expect(result).toBe(false); + }); + + it('should return true', () => { + const element: Element = { tagName: 'INPUT' } as Element; + + const result: boolean = component.isNotButtonElement(element); + + expect(result).toBe(true); + }); + }); +}); diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.ts new file mode 100644 index 0000000000..c497b0d76b --- /dev/null +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component.ts @@ -0,0 +1,49 @@ +import { ZUSTAENDIGE_STELLE_SERVICE, ZustaendigeStelleService } from '@alfa-client/zustaendige-stelle-shared'; +import { Component, EventEmitter, HostListener, Inject, OnInit, Output } from '@angular/core'; +import { Resource } from '@ngxp/rest'; +import { InstantSearchResult } from '@ods/system'; +import { Observable } from 'rxjs'; + +@Component({ + selector: 'alfa-search-zustaendige-stelle-form-container', + templateUrl: './search-zustaendige-stelle-form-container.component.html', +}) +export class SearchZustaendigeStelleFormContainerComponent<T extends Resource> implements OnInit { + @Output() searchResultSelected = new EventEmitter<T>(); + + public searchResults$: Observable<InstantSearchResult<T>[]>; + + constructor( + @Inject(ZUSTAENDIGE_STELLE_SERVICE) + private service: ZustaendigeStelleService<T>, + ) {} + + ngOnInit(): void { + this.searchResults$ = this.service.getSearchResultList(); + } + + @HostListener('document:keydown', ['$event']) + onKeyDownHandler(e: KeyboardEvent) { + if (e.key === 'Enter' && this.isNotButtonElement(e.target as Element)) { + e.preventDefault(); + } + } + + public search(searchBy: string): void { + this.service.search(searchBy); + } + + public selectSearchResult(zustaendigeStelle: T): void { + this.service.selectSearchResult(zustaendigeStelle); + this.service.clearSearchResult(); + this.searchResultSelected.emit(zustaendigeStelle); + } + + public clearSearchResult(): void { + this.service.clearSearchResult(); + } + + public isNotButtonElement(e: Element): boolean { + return e.tagName !== 'BUTTON'; + } +} diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.html b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.html similarity index 100% rename from alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.html rename to alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.html diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.spec.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.spec.ts similarity index 93% rename from alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.spec.ts rename to alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.spec.ts index 936e0398d6..92a65e293c 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.spec.ts +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.spec.ts @@ -28,11 +28,11 @@ import { ReactiveFormsModule } from '@angular/forms'; import { faker } from '@faker-js/faker'; import { Resource } from '@ngxp/rest'; import { InstantSearchComponent, InstantSearchResult } from '@ods/system'; +import { createInstantSearchResult } from 'libs/design-system/src/test/search'; +import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; +import { createOrganisationsEinheitResource } from 'libs/zustaendige-stelle-shared/test/organisations-einheit'; import { MockComponent } from 'ng-mocks'; -import { createInstantSearchResult } from '../../../../../design-system/src/test/search'; -import { getDataTestIdOf } from '../../../../../tech-shared/test/data-test'; -import { createOrganisationsEinheitResource } from '../../../../../zustaendige-stelle-shared/test/organisations-einheit'; -import { SearchZustaendigeStelleFormservice } from '../search-zustaendige-stelle.formservice'; +import { SearchZustaendigeStelleFormservice } from '../../search-zustaendige-stelle.formservice'; import { SearchZustaendigeStelleFormComponent } from './search-zustaendige-stelle-form.component'; describe('SearchZustaendigeStelleFormComponent', () => { diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.ts b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.ts similarity index 94% rename from alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.ts rename to alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.ts index dff8515301..22c096f065 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.ts +++ b/alfa-client/libs/zustaendige-stelle/src/lib/search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component.ts @@ -24,7 +24,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { Resource } from '@ngxp/rest'; import { InstantSearchResult } from '@ods/system'; -import { SearchZustaendigeStelleFormservice } from '../search-zustaendige-stelle.formservice'; +import { SearchZustaendigeStelleFormservice } from '../../search-zustaendige-stelle.formservice'; @Component({ selector: 'alfa-search-zustaendige-stelle-form', diff --git a/alfa-client/libs/zustaendige-stelle/src/lib/zustaendige-stelle.module.ts b/alfa-client/libs/zustaendige-stelle/src/lib/zustaendige-stelle.module.ts index 820da330c9..11e5ee19ea 100644 --- a/alfa-client/libs/zustaendige-stelle/src/lib/zustaendige-stelle.module.ts +++ b/alfa-client/libs/zustaendige-stelle/src/lib/zustaendige-stelle.module.ts @@ -40,7 +40,8 @@ import { SearchExterneFachstelleContainerComponent } from './search-externe-fach import { OrganisationsEinheitComponent } from './search-organisations-einheit-container/organisations-einheit/organisations-einheit.component'; import { SearchOrganisationsEinheitContainerComponent } from './search-organisations-einheit-container/search-organisations-einheit-container.component'; import { SearchZustaendigeStelleDialogComponent } from './search-zustaendige-stelle-dialog/search-zustaendige-stelle-dialog.component'; -import { SearchZustaendigeStelleFormComponent } from './search-zustaendige-stelle-dialog/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component'; +import { SearchZustaendigeStelleFormContainerComponent } from './search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form-container.component'; +import { SearchZustaendigeStelleFormComponent } from './search-zustaendige-stelle-dialog/search-zustaendige-stelle-form-container/search-zustaendige-stelle-form/search-zustaendige-stelle-form.component'; import { ZustaendigeStelleButtonComponent } from './zustaendige-stelle-button/zustaendige-stelle-button.component'; import { ZustaendigeStelleHeaderComponent } from './zustaendige-stelle-header/zustaendige-stelle-header.component'; @@ -68,6 +69,7 @@ import { ZustaendigeStelleHeaderComponent } from './zustaendige-stelle-header/zu SearchExterneFachstelleContainerComponent, EditZustaendigeStelleButtonComponent, ZustaendigeStelleHeaderComponent, + SearchZustaendigeStelleFormContainerComponent, ], exports: [ OrganisationsEinheitComponent, @@ -75,6 +77,7 @@ import { ZustaendigeStelleHeaderComponent } from './zustaendige-stelle-header/zu SearchZustaendigeStelleDialogComponent, SearchOrganisationsEinheitContainerComponent, SearchExterneFachstelleContainerComponent, + SearchZustaendigeStelleFormContainerComponent, ], }) export class ZustaendigeStelleModule {} -- GitLab