From 1b57626aa4abd423c32b26a8f0cb1187ed9375dc Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 27 Mar 2024 12:04:20 +0100 Subject: [PATCH] =?UTF-8?q?OZG-5151:=20fix=20delete=20bescheid=20on=20?= =?UTF-8?q?=C3=BCberspringen=20und=20abschliessen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ozgcloud-dialog.service.ts | 2 +- .../bescheiden.model.ts | 4 -- ...den-ueberspringen-button.component.spec.ts | 15 ------- ...scheiden-ueberspringen-button.component.ts | 14 ++---- ...den-ueberspringen-dialog.component.spec.ts | 45 +++++++++++-------- ...scheiden-ueberspringen-dialog.component.ts | 24 ++++++---- 6 files changed, 46 insertions(+), 58 deletions(-) diff --git a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts index 62cba4d267..b9522ba3a3 100644 --- a/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts +++ b/alfa-client/libs/ui/src/lib/ui/ozgcloud-dialog/ozgcloud-dialog.service.ts @@ -21,7 +21,7 @@ export class OzgcloudDialogService { ); } - public open<T, D>(component: ComponentType<T>, data?: D): DialogRef<T> { + public open<T, D = undefined>(component: ComponentType<T>, data?: D): DialogRef<T> { return this.openDialog(component, this.buildDialogConfigWithData(data)); } diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts index cdaaba1600..c44625133f 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model.ts @@ -5,7 +5,3 @@ export interface BescheidenDialogData { vorgangWithEingangResource: VorgangWithEingangResource; bescheidDraftResource?: BescheidResource; } - -export interface BescheiderstellungUeberspringenDialogData { - vorgangWithEingangResource: VorgangWithEingangResource; -} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts index 5bd380e629..8edecfa1d4 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.spec.ts @@ -3,25 +3,15 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-bescheiden-ueberspringen-button.component'; import { OzgcloudDialogService } from '@alfa-client/ui'; import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component'; -import { BescheiderstellungUeberspringenDialogData } from '@alfa-client/vorgang-detail'; -import { BescheidenFormService } from '../../../bescheiden.formservice'; -import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang'; -import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { let component: VorgangDetailBescheidenUeberspringenButtonComponent; let fixture: ComponentFixture<VorgangDetailBescheidenUeberspringenButtonComponent>; let ozgcloudDialogService: Mock<OzgcloudDialogService>; - let formService: Mock<BescheidenFormService>; - let vorgangWithEingangResource: VorgangWithEingangResource; beforeEach(async () => { ozgcloudDialogService = mock(OzgcloudDialogService); - formService = mock(BescheidenFormService); - - vorgangWithEingangResource = createVorgangWithEingangResource(); - formService.getVorgangWithEingangResource.mockReturnValue(vorgangWithEingangResource); await TestBed.configureTestingModule({ declarations: [VorgangDetailBescheidenUeberspringenButtonComponent], @@ -30,10 +20,6 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { provide: OzgcloudDialogService, useValue: ozgcloudDialogService, }, - { - provide: BescheidenFormService, - useValue: formService, - }, ], }).compileComponents(); @@ -52,7 +38,6 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { expect(ozgcloudDialogService.open).toHaveBeenCalledWith( VorgangDetailBescheidenUeberspringenDialogComponent, - { vorgangWithEingangResource } as BescheiderstellungUeberspringenDialogData, ); }); }); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts index 63b182124b..29a02d750b 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-button/vorgang-detail-bescheiden-ueberspringen-button.component.ts @@ -2,8 +2,6 @@ import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; import { Component, Input } from '@angular/core'; import { OzgcloudDialogService } from '@alfa-client/ui'; import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component'; -import { BescheidenFormService } from '../../../bescheiden.formservice'; -import { BescheiderstellungUeberspringenDialogData } from '@alfa-client/vorgang-detail'; @Component({ selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-button', @@ -13,17 +11,11 @@ import { BescheiderstellungUeberspringenDialogData } from '@alfa-client/vorgang- export class VorgangDetailBescheidenUeberspringenButtonComponent { @Input() vorgang: VorgangWithEingangResource; - constructor( - private readonly ozgcloudDialogService: OzgcloudDialogService, - private formService: BescheidenFormService, - ) {} + constructor(private readonly ozgcloudDialogService: OzgcloudDialogService) {} public onClick(): void { - this.ozgcloudDialogService.open< + this.ozgcloudDialogService.open<VorgangDetailBescheidenUeberspringenDialogComponent>( VorgangDetailBescheidenUeberspringenDialogComponent, - BescheiderstellungUeberspringenDialogData - >(VorgangDetailBescheidenUeberspringenDialogComponent, { - vorgangWithEingangResource: this.formService.getVorgangWithEingangResource(), - }); + ); } } diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts index 3519995184..6f137b513d 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.spec.ts @@ -1,13 +1,12 @@ import { Mock, mock } from '@alfa-client/test-utils'; -import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; -import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing'; +import { DialogRef } from '@angular/cdk/dialog'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-detail-bescheiden-ueberspringen-dialog.component'; import { MockComponent } from 'ng-mocks'; import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui'; import { MatIcon } from '@angular/material/icon'; import { BescheidService } from '@alfa-client/bescheid-shared'; -import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang'; -import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; +import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; import { createCommandResource } from '../../../../../../../../command-shared/test/command'; import { of } from 'rxjs'; import { cold } from 'jest-marbles'; @@ -18,7 +17,7 @@ import { } from '@alfa-client/tech-shared'; import { CommandLinkRel } from '../../../../../../../../command-shared/src/lib/command.linkrel'; import { CommandResource } from '@alfa-client/command-shared'; -import { BescheiderstellungUeberspringenDialogData } from '../../../bescheiden.model'; +import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang'; describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { let component: VorgangDetailBescheidenUeberspringenDialogComponent; @@ -27,16 +26,13 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { let dialogRef: Mock<DialogRef>; let bescheidService: Mock<BescheidService>; let ozgcloudDialogService: Mock<OzgcloudDialogService>; - let dialogData: BescheiderstellungUeberspringenDialogData; - let vorgangWithEingangResource: VorgangWithEingangResource; + let vorgangService: Mock<VorgangService>; beforeEach(async () => { dialogRef = mock(DialogRef); bescheidService = mock(BescheidService); ozgcloudDialogService = mock(OzgcloudDialogService); - - vorgangWithEingangResource = createVorgangWithEingangResource(); - dialogData = { vorgangWithEingangResource }; + vorgangService = mock(VorgangService); await TestBed.configureTestingModule({ declarations: [ @@ -58,8 +54,8 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { useValue: ozgcloudDialogService, }, { - provide: DIALOG_DATA, - useValue: dialogData, + provide: VorgangService, + useValue: vorgangService, }, ], }).compileComponents(); @@ -82,23 +78,36 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { }); describe('onConfirm', () => { + let vorgangWithEingangResource: VorgangWithEingangResource; const successfullyDoneCommandStateResource: StateResource<CommandResource> = createStateResource(createCommandResource([CommandLinkRel.EFFECTED_RESOURCE])); beforeEach(() => { + vorgangWithEingangResource = createVorgangWithEingangResource(); + vorgangService.getVorgangWithEingang.mockReturnValue( + of(createStateResource(vorgangWithEingangResource)), + ); bescheidService.bescheidErstellungUeberspringen.mockReturnValue( of(successfullyDoneCommandStateResource), ); }); - it('should call bescheid service erstellung ueberspringen', fakeAsync(() => { + it('should get vorgang with eingang', () => { component.onConfirm(); - tick(); - expect(bescheidService.bescheidErstellungUeberspringen).toHaveBeenCalledWith( - vorgangWithEingangResource, - ); - })); + expect(vorgangService.getVorgangWithEingang).toHaveBeenCalled(); + }); + + it('should call bescheid service erstellung ueberspringen', (done) => { + component.onConfirm(); + + component.bescheiderstellungUeberspringen$.subscribe(() => { + expect(bescheidService.bescheidErstellungUeberspringen).toHaveBeenCalledWith( + vorgangWithEingangResource, + ); + done(); + }); + }); it('should close all dialogs on success', (done) => { component.onConfirm(); diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts index 9344ce4fdb..c62e48531b 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts @@ -1,11 +1,11 @@ -import { Component, Inject } from '@angular/core'; -import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; +import { Component } from '@angular/core'; +import { DialogRef } from '@angular/cdk/dialog'; import { OzgcloudDialogService } from '@alfa-client/ui'; import { BescheidService } from '@alfa-client/bescheid-shared'; -import { Observable } from 'rxjs'; +import { filter, first, Observable, switchMap } from 'rxjs'; import { CommandResource, onCommandSuccessfullyDone } from '@alfa-client/command-shared'; -import { StateResource } from '@alfa-client/tech-shared'; -import { BescheiderstellungUeberspringenDialogData } from '../../../bescheiden.model'; +import { isLoaded, StateResource } from '@alfa-client/tech-shared'; +import { VorgangService } from '@alfa-client/vorgang-shared'; @Component({ selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-dialog', @@ -18,7 +18,7 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent { private readonly dialogRef: DialogRef, private readonly bescheidService: BescheidService, private readonly ozgcloudDialogService: OzgcloudDialogService, - @Inject(DIALOG_DATA) private readonly dialogData: BescheiderstellungUeberspringenDialogData, + private readonly vorgangService: VorgangService, ) {} public onClose(): void { @@ -26,9 +26,15 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent { } public onConfirm(): void { - this.bescheiderstellungUeberspringen$ = this.bescheidService - .bescheidErstellungUeberspringen(this.dialogData.vorgangWithEingangResource) - .pipe(onCommandSuccessfullyDone(() => this.ozgcloudDialogService.closeAll())); + this.bescheiderstellungUeberspringen$ = this.vorgangService.getVorgangWithEingang().pipe( + filter((stateResource) => isLoaded(stateResource)), + first(), + switchMap((stateResource) => + this.bescheidService + .bescheidErstellungUeberspringen(stateResource.resource) + .pipe(onCommandSuccessfullyDone(() => this.ozgcloudDialogService.closeAll())), + ), + ); } public onCancel(): void { -- GitLab