Skip to content
Snippets Groups Projects
Commit ec69b718 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-5151: fix delete bescheid on überspringen und...

Merge pull request 'OZG-5151: fix delete bescheid on überspringen und abschliessen' (#492) from OZG-5151-fix-delete-bescheid into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/alfa/pulls/492


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents 995f4f8d 265e94df
No related branches found
No related tags found
No related merge requests found
Showing
with 76 additions and 64 deletions
...@@ -206,11 +206,14 @@ describe('BescheidService', () => { ...@@ -206,11 +206,14 @@ describe('BescheidService', () => {
const vorgangWithEingangResource: VorgangWithEingangResource = const vorgangWithEingangResource: VorgangWithEingangResource =
createVorgangWithEingangResource(); createVorgangWithEingangResource();
const bescheidResource: BescheidResource = createBescheidResource(); const bescheidResource: BescheidResource = createBescheidResource();
const commandStateResource: StateResource<CommandResource> = createCommandStateResource(); const vorgangAbschliessenCommandStateResource: StateResource<CommandResource> =
createCommandStateResource();
beforeEach(() => { beforeEach(() => {
service.vorgangAbschliesen = jest.fn().mockReturnValue(of(createCommandStateResource())); service.vorgangAbschliesen = jest
service.deleteBescheid = jest.fn().mockReturnValue(of(commandStateResource)); .fn()
.mockReturnValue(of(vorgangAbschliessenCommandStateResource));
service.deleteBescheid = jest.fn().mockReturnValue(of(createCommandStateResource));
}); });
it('should Bescheiderstellung überspringen', (done) => { it('should Bescheiderstellung überspringen', (done) => {
...@@ -227,6 +230,10 @@ describe('BescheidService', () => { ...@@ -227,6 +230,10 @@ describe('BescheidService', () => {
}); });
it('should Bescheid löschen', (done) => { it('should Bescheid löschen', (done) => {
service.vorgangAbschliesen = jest
.fn()
.mockReturnValue(of(createCommandStateResource([CommandLinkRel.EFFECTED_RESOURCE])));
const command$: Observable<StateResource<CommandResource>> = const command$: Observable<StateResource<CommandResource>> =
service.bescheidLoeschenUndErstellungUeberspringen( service.bescheidLoeschenUndErstellungUeberspringen(
vorgangWithEingangResource, vorgangWithEingangResource,
...@@ -239,14 +246,29 @@ describe('BescheidService', () => { ...@@ -239,14 +246,29 @@ describe('BescheidService', () => {
}); });
}); });
it('should emit delete bescheid command', () => { it('should not Bescheid löschen', (done) => {
service.vorgangAbschliesen = jest.fn().mockReturnValue(of(createCommandStateResource()));
const command$: Observable<StateResource<CommandResource>> = const command$: Observable<StateResource<CommandResource>> =
service.bescheidLoeschenUndErstellungUeberspringen( service.bescheidLoeschenUndErstellungUeberspringen(
vorgangWithEingangResource, vorgangWithEingangResource,
bescheidResource, bescheidResource,
); );
expect(command$).toBeObservable(cold('(a|)', { a: commandStateResource })); command$.subscribe(() => {
expect(service.deleteBescheid).not.toHaveBeenCalledWith(bescheidResource);
done();
});
});
it('should emit vorgang abschliessen command', () => {
const command$: Observable<StateResource<CommandResource>> =
service.bescheidLoeschenUndErstellungUeberspringen(
vorgangWithEingangResource,
bescheidResource,
);
expect(command$).toBeObservable(cold('(a|)', { a: vorgangAbschliessenCommandStateResource }));
}); });
}); });
......
...@@ -81,7 +81,7 @@ export class BescheidService { ...@@ -81,7 +81,7 @@ export class BescheidService {
bescheidResource: BescheidResource, bescheidResource: BescheidResource,
): Observable<StateResource<CommandResource>> { ): Observable<StateResource<CommandResource>> {
return this.vorgangAbschliesen(vorgangWithEingangResource).pipe( return this.vorgangAbschliesen(vorgangWithEingangResource).pipe(
switchMap(() => this.deleteBescheid(bescheidResource)), onCommandSuccessfullyDone(() => this.deleteBescheid(bescheidResource)),
); );
} }
......
...@@ -21,7 +21,7 @@ export class OzgcloudDialogService { ...@@ -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)); return this.openDialog(component, this.buildDialogConfigWithData(data));
} }
......
...@@ -5,7 +5,3 @@ export interface BescheidenDialogData { ...@@ -5,7 +5,3 @@ export interface BescheidenDialogData {
vorgangWithEingangResource: VorgangWithEingangResource; vorgangWithEingangResource: VorgangWithEingangResource;
bescheidDraftResource?: BescheidResource; bescheidDraftResource?: BescheidResource;
} }
export interface BescheiderstellungUeberspringenDialogData {
vorgangWithEingangResource: VorgangWithEingangResource;
}
...@@ -3,25 +3,15 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; ...@@ -3,25 +3,15 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-bescheiden-ueberspringen-button.component'; import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-bescheiden-ueberspringen-button.component';
import { OzgcloudDialogService } from '@alfa-client/ui'; import { OzgcloudDialogService } from '@alfa-client/ui';
import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component'; 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', () => { describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
let component: VorgangDetailBescheidenUeberspringenButtonComponent; let component: VorgangDetailBescheidenUeberspringenButtonComponent;
let fixture: ComponentFixture<VorgangDetailBescheidenUeberspringenButtonComponent>; let fixture: ComponentFixture<VorgangDetailBescheidenUeberspringenButtonComponent>;
let ozgcloudDialogService: Mock<OzgcloudDialogService>; let ozgcloudDialogService: Mock<OzgcloudDialogService>;
let formService: Mock<BescheidenFormService>;
let vorgangWithEingangResource: VorgangWithEingangResource;
beforeEach(async () => { beforeEach(async () => {
ozgcloudDialogService = mock(OzgcloudDialogService); ozgcloudDialogService = mock(OzgcloudDialogService);
formService = mock(BescheidenFormService);
vorgangWithEingangResource = createVorgangWithEingangResource();
formService.getVorgangWithEingangResource.mockReturnValue(vorgangWithEingangResource);
await TestBed.configureTestingModule({ await TestBed.configureTestingModule({
declarations: [VorgangDetailBescheidenUeberspringenButtonComponent], declarations: [VorgangDetailBescheidenUeberspringenButtonComponent],
...@@ -30,10 +20,6 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { ...@@ -30,10 +20,6 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
provide: OzgcloudDialogService, provide: OzgcloudDialogService,
useValue: ozgcloudDialogService, useValue: ozgcloudDialogService,
}, },
{
provide: BescheidenFormService,
useValue: formService,
},
], ],
}).compileComponents(); }).compileComponents();
...@@ -52,7 +38,6 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { ...@@ -52,7 +38,6 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
expect(ozgcloudDialogService.open).toHaveBeenCalledWith( expect(ozgcloudDialogService.open).toHaveBeenCalledWith(
VorgangDetailBescheidenUeberspringenDialogComponent, VorgangDetailBescheidenUeberspringenDialogComponent,
{ vorgangWithEingangResource } as BescheiderstellungUeberspringenDialogData,
); );
}); });
}); });
......
...@@ -2,8 +2,6 @@ import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; ...@@ -2,8 +2,6 @@ import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { Component, Input } from '@angular/core'; import { Component, Input } from '@angular/core';
import { OzgcloudDialogService } from '@alfa-client/ui'; import { OzgcloudDialogService } from '@alfa-client/ui';
import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component'; 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({ @Component({
selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-button', selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-button',
...@@ -13,17 +11,11 @@ import { BescheiderstellungUeberspringenDialogData } from '@alfa-client/vorgang- ...@@ -13,17 +11,11 @@ import { BescheiderstellungUeberspringenDialogData } from '@alfa-client/vorgang-
export class VorgangDetailBescheidenUeberspringenButtonComponent { export class VorgangDetailBescheidenUeberspringenButtonComponent {
@Input() vorgang: VorgangWithEingangResource; @Input() vorgang: VorgangWithEingangResource;
constructor( constructor(private readonly ozgcloudDialogService: OzgcloudDialogService) {}
private readonly ozgcloudDialogService: OzgcloudDialogService,
private formService: BescheidenFormService,
) {}
public onClick(): void { public onClick(): void {
this.ozgcloudDialogService.open< this.ozgcloudDialogService.open<VorgangDetailBescheidenUeberspringenDialogComponent>(
VorgangDetailBescheidenUeberspringenDialogComponent, VorgangDetailBescheidenUeberspringenDialogComponent,
BescheiderstellungUeberspringenDialogData );
>(VorgangDetailBescheidenUeberspringenDialogComponent, {
vorgangWithEingangResource: this.formService.getVorgangWithEingangResource(),
});
} }
} }
import { Mock, mock } from '@alfa-client/test-utils'; import { Mock, mock } from '@alfa-client/test-utils';
import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; import { DialogRef } from '@angular/cdk/dialog';
import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-detail-bescheiden-ueberspringen-dialog.component'; import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-detail-bescheiden-ueberspringen-dialog.component';
import { MockComponent } from 'ng-mocks'; import { MockComponent } from 'ng-mocks';
import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui'; import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui';
import { MatIcon } from '@angular/material/icon'; import { MatIcon } from '@angular/material/icon';
import { BescheidService } from '@alfa-client/bescheid-shared'; import { BescheidService } from '@alfa-client/bescheid-shared';
import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang'; import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { createCommandResource } from '../../../../../../../../command-shared/test/command'; import { createCommandResource } from '../../../../../../../../command-shared/test/command';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { cold } from 'jest-marbles'; import { cold } from 'jest-marbles';
...@@ -18,7 +17,7 @@ import { ...@@ -18,7 +17,7 @@ import {
} from '@alfa-client/tech-shared'; } from '@alfa-client/tech-shared';
import { CommandLinkRel } from '../../../../../../../../command-shared/src/lib/command.linkrel'; import { CommandLinkRel } from '../../../../../../../../command-shared/src/lib/command.linkrel';
import { CommandResource } from '@alfa-client/command-shared'; import { CommandResource } from '@alfa-client/command-shared';
import { BescheiderstellungUeberspringenDialogData } from '../../../bescheiden.model'; import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang';
describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
let component: VorgangDetailBescheidenUeberspringenDialogComponent; let component: VorgangDetailBescheidenUeberspringenDialogComponent;
...@@ -27,16 +26,13 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { ...@@ -27,16 +26,13 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
let dialogRef: Mock<DialogRef>; let dialogRef: Mock<DialogRef>;
let bescheidService: Mock<BescheidService>; let bescheidService: Mock<BescheidService>;
let ozgcloudDialogService: Mock<OzgcloudDialogService>; let ozgcloudDialogService: Mock<OzgcloudDialogService>;
let dialogData: BescheiderstellungUeberspringenDialogData; let vorgangService: Mock<VorgangService>;
let vorgangWithEingangResource: VorgangWithEingangResource;
beforeEach(async () => { beforeEach(async () => {
dialogRef = mock(DialogRef); dialogRef = mock(DialogRef);
bescheidService = mock(BescheidService); bescheidService = mock(BescheidService);
ozgcloudDialogService = mock(OzgcloudDialogService); ozgcloudDialogService = mock(OzgcloudDialogService);
vorgangService = mock(VorgangService);
vorgangWithEingangResource = createVorgangWithEingangResource();
dialogData = { vorgangWithEingangResource };
await TestBed.configureTestingModule({ await TestBed.configureTestingModule({
declarations: [ declarations: [
...@@ -58,8 +54,8 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { ...@@ -58,8 +54,8 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
useValue: ozgcloudDialogService, useValue: ozgcloudDialogService,
}, },
{ {
provide: DIALOG_DATA, provide: VorgangService,
useValue: dialogData, useValue: vorgangService,
}, },
], ],
}).compileComponents(); }).compileComponents();
...@@ -82,23 +78,36 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => { ...@@ -82,23 +78,36 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
}); });
describe('onConfirm', () => { describe('onConfirm', () => {
let vorgangWithEingangResource: VorgangWithEingangResource;
const successfullyDoneCommandStateResource: StateResource<CommandResource> = const successfullyDoneCommandStateResource: StateResource<CommandResource> =
createStateResource(createCommandResource([CommandLinkRel.EFFECTED_RESOURCE])); createStateResource(createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]));
beforeEach(() => { beforeEach(() => {
vorgangWithEingangResource = createVorgangWithEingangResource();
vorgangService.getVorgangWithEingang.mockReturnValue(
of(createStateResource(vorgangWithEingangResource)),
);
bescheidService.bescheidErstellungUeberspringen.mockReturnValue( bescheidService.bescheidErstellungUeberspringen.mockReturnValue(
of(successfullyDoneCommandStateResource), of(successfullyDoneCommandStateResource),
); );
}); });
it('should call bescheid service erstellung ueberspringen', fakeAsync(() => { it('should get vorgang with eingang', () => {
component.onConfirm(); component.onConfirm();
tick();
expect(vorgangService.getVorgangWithEingang).toHaveBeenCalled();
});
it('should call bescheid service erstellung ueberspringen', (done) => {
component.onConfirm();
component.bescheiderstellungUeberspringen$.subscribe(() => {
expect(bescheidService.bescheidErstellungUeberspringen).toHaveBeenCalledWith( expect(bescheidService.bescheidErstellungUeberspringen).toHaveBeenCalledWith(
vorgangWithEingangResource, vorgangWithEingangResource,
); );
})); done();
});
});
it('should close all dialogs on success', (done) => { it('should close all dialogs on success', (done) => {
component.onConfirm(); component.onConfirm();
......
import { Component, Inject } from '@angular/core'; import { Component } from '@angular/core';
import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; import { DialogRef } from '@angular/cdk/dialog';
import { OzgcloudDialogService } from '@alfa-client/ui'; import { OzgcloudDialogService } from '@alfa-client/ui';
import { BescheidService } from '@alfa-client/bescheid-shared'; 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 { CommandResource, onCommandSuccessfullyDone } from '@alfa-client/command-shared';
import { StateResource } from '@alfa-client/tech-shared'; import { isLoaded, StateResource } from '@alfa-client/tech-shared';
import { BescheiderstellungUeberspringenDialogData } from '../../../bescheiden.model'; import { VorgangService } from '@alfa-client/vorgang-shared';
@Component({ @Component({
selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-dialog', selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-dialog',
...@@ -18,7 +18,7 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent { ...@@ -18,7 +18,7 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent {
private readonly dialogRef: DialogRef, private readonly dialogRef: DialogRef,
private readonly bescheidService: BescheidService, private readonly bescheidService: BescheidService,
private readonly ozgcloudDialogService: OzgcloudDialogService, private readonly ozgcloudDialogService: OzgcloudDialogService,
@Inject(DIALOG_DATA) private readonly dialogData: BescheiderstellungUeberspringenDialogData, private readonly vorgangService: VorgangService,
) {} ) {}
public onClose(): void { public onClose(): void {
...@@ -26,9 +26,17 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent { ...@@ -26,9 +26,17 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent {
} }
public onConfirm(): void { public onConfirm(): void {
this.bescheiderstellungUeberspringen$ = this.bescheidService this.bescheiderstellungUeberspringen$ = this.vorgangService.getVorgangWithEingang().pipe(
.bescheidErstellungUeberspringen(this.dialogData.vorgangWithEingangResource) filter((stateResource) => isLoaded(stateResource)),
.pipe(onCommandSuccessfullyDone(() => this.ozgcloudDialogService.closeAll())); first(),
switchMap((stateResource) =>
this.bescheidService.bescheidErstellungUeberspringen(stateResource.resource).pipe(
onCommandSuccessfullyDone(() => {
this.ozgcloudDialogService.closeAll();
}),
),
),
);
} }
public onCancel(): void { public onCancel(): void {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment